var assert = require('assert') , collection_json = require('../'); function identity(x) { return x; } var collection1 = {collection: { items: [ { href: "http://example.com/1", links: [], data: [ { prompt: "prompt1", name: "field-1", value: "1", baz: "woot" }, { prompt: "prompt2", name: "field-2", value: "2", foz: "asdf" }, ] }, { href: "http://example.com/2", links: [], data: [ { prompt: "prompt1", name: "field-1", value: "3" }, { prompt: "prompt2", name: "field-2", value: "4" }, ] } ] }}; describe('fromObject', function() { it('Has basic fields', function() { var collection = collection_json.fromObject({}); assert.deepEqual([], collection.items); assert.deepEqual([], collection.links); assert.deepEqual([], collection.queries); assert.deepEqual([], collection.templates); }); it('Can map data field in items', function() { assert.deepEqual(collection_json.fromObject(collection1).mapItemData(identity), [{"field-1": "1", "field-2": "2"} ,{"field-1": "3", "field-2": "4"}]); function f(map) { return parseInt(map["field-1"]) + parseInt(map["field-2"]); } assert.deepEqual(collection_json.fromObject(collection1).mapItemData(f), [3, 7]); }); });