From b883e87b1e5222388e6562296009a49126d3af3c Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 28 Jun 2012 12:27:39 +0200 Subject: o Initial import of application/vnd.collection+json parser code. --- test/collection_json.test.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/collection_json.test.js (limited to 'test') 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]); + }); +}); -- cgit v1.2.3