summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/collection_json.test.js39
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]);
+ });
+});