| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- "use strict";
 
- if (!module.parent) return require.cache[__filename] = 0, (new(require("mocha"))()).addFile(__filename).ui("exports").run(process.exit);
 
- var assert = require("assert"),
 
- 	ParsedDeps = require("../../../lib/pipeline/ParsedDeps");
 
- exports.ParsedDeps = {
 
- 	"#extractFields": {
 
- 		"should be able to convert a document to its projected form": function() {
 
- 			var deps = {a:true, b:true},
 
- 				doc = {a:23, b:64, c:92},
 
- 				proj = new ParsedDeps(deps).extractFields(doc),
 
- 				expected = {a:23,b:64};
 
- 			assert.deepEqual(proj, expected);
 
- 		},
 
- 		"should extract fields for nested objects": function() {
 
- 			var deps = {a:{b:true}},
 
- 				doc = {a:{b:[1,2,3]},ignoreThisOne:123},
 
- 				proj = new ParsedDeps(deps).extractFields(doc),
 
- 				expected = {a:{b:[1,2,3]}};
 
- 			assert.deepEqual(proj, expected);
 
- 		},
 
- 	},
 
- 	"#_documentHelper": {
 
- 		"should skip fields that are not needed": function() {
 
- 			var json = {"foo":"bar"},
 
- 				neededFields = {},
 
- 				parse = new ParsedDeps(),
 
- 				expected = {};
 
- 			assert.deepEqual(parse._documentHelper(json, neededFields), expected);
 
- 		},
 
- 		"should return values that are booleans": function() {
 
- 			var json = {"foo":"bar"},
 
- 				neededFields = {"foo":true},
 
- 				parse = new ParsedDeps(),
 
- 				expected = {"foo":"bar"};
 
- 			assert.deepEqual(parse._documentHelper(json, neededFields), expected);
 
- 		},
 
- 		"should call _arrayHelper on values that are arrays": function() {
 
- 			var json = {"foo":[{"bar":"baz"}], "a": "b"},
 
- 				neededFields = {"foo":true},
 
- 				parse = new ParsedDeps(),
 
- 				expected = {"foo":[{bar:"baz"}]};
 
- 			assert.deepEqual(parse._documentHelper(json, neededFields), expected);
 
- 		},
 
- 		"should recurse on values that are objects": function() {
 
- 			var json = {"foo":{"bar":"baz"}},
 
- 				neededFields = {"foo":true},
 
- 				parse = new ParsedDeps(),
 
- 				expected = {"foo":{"bar":"baz"}};
 
- 			assert.deepEqual(parse._documentHelper(json, neededFields), expected);
 
- 		},
 
- 	},
 
- 	"#_arrayHelper": {
 
- 		"should call _documentHelper on values that are objects": function() {
 
- 			var array = [{"foo":"bar"}],
 
- 				neededFields = {"foo":true},
 
- 				parse = new ParsedDeps(),
 
- 				expected = [{foo:"bar"}];
 
- 			assert.deepEqual(parse._arrayHelper(array, neededFields), expected);
 
- 		},
 
- 		"should recurse on values that are arrays": function() {
 
- 			var array = [[{"foo":"bar"}]],
 
- 				neededFields = {"foo":true},
 
- 				parse = new ParsedDeps(),
 
- 				expected = [[{"foo":"bar"}]];
 
- 			var actual = parse._arrayHelper(array, neededFields);
 
- 			assert.deepEqual(actual, expected);
 
- 		},
 
- 	},
 
- };
 
 
  |