diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/collection_json.test.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/collection_json.test.js b/test/collection_json.test.js new file mode 100644 index 0000000..b74d99b --- /dev/null +++ b/test/collection_json.test.js @@ -0,0 +1,39 @@ +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]); + }); +}); |