| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | 
							- "use strict";
 
- if (!module.parent) return require.cache[__filename] = 0, (new(require("mocha"))()).addFile(__filename).ui("exports").run(process.exit);
 
- var assert = require("assert"),
 
- 	DepsTracker = require("../../../lib/pipeline/DepsTracker");
 
- exports.DepsTracker = {
 
- 	"#toProjection()": {
 
- 		"should be able to convert dependencies to a projection": function(){
 
- 			var deps = new DepsTracker(),
 
- 				expected = {_id:0,a:1,b:1};
 
- 			deps.fields = {a:1,b:1};
 
- 			assert.deepEqual(expected, deps.toProjection());
 
- 		},
 
- 		"should be able to convert dependencies with subfields to a projection": function(){
 
- 			var deps = new DepsTracker(),
 
- 				expected = {_id:0,a:1};
 
- 			deps.fields = {a:1,"a.b":1};
 
- 			assert.deepEqual(expected, deps.toProjection());
 
- 		},
 
- 		"should be able to convert dependencies with _id to a projection": function(){
 
- 			var deps = new DepsTracker(),
 
- 				expected = {a:1,b:1,_id:1};
 
- 			deps.fields = {_id:1,a:1,b:1};
 
- 			assert.deepEqual(expected, deps.toProjection());
 
- 		},
 
- 		"should be able to convert dependencies with id and subfields to a projection": function(){
 
- 			var deps = new DepsTracker(),
 
- 				expected = {_id:1,b:1};
 
- 			deps.fields = {"_id.a":1,b:1};
 
- 			assert.deepEqual(expected, deps.toProjection());
 
- 		},
 
- 		"should return empty object if needWholeDocument is true": function() {
 
- 			var deps = new DepsTracker(),
 
- 				expected = {};
 
- 			deps.needWholeDocument = true;
 
- 			assert.deepEqual(expected, deps.toProjection());
 
- 		},
 
- 		"should return $noFieldsNeeded if there are no dependencies": function() {
 
- 			var deps = new DepsTracker(),
 
- 				expected = {_id:0,$noFieldsNeeded:1};
 
- 			assert.deepEqual(expected, deps.toProjection());
 
- 		},
 
- 	},
 
- 	"#toParsedDeps()": {
 
- 		"should not parse if needWholeDocument is true": function() {
 
- 			var deps = new DepsTracker(),
 
- 				expected; // undefined;
 
- 			deps.needWholeDocument = true;
 
- 			assert.strictEqual(expected, deps.toParsedDeps());
 
- 		},
 
- 		"should not parse if needTextScore is true": function() {
 
- 			var deps = new DepsTracker(),
 
- 				expected; // undefined;
 
- 			deps.needTextScore = true;
 
- 			assert.strictEqual(expected, deps.toParsedDeps());
 
- 		},
 
- 		"should be able to parse dependencies": function() {
 
- 			var deps = new DepsTracker(),
 
- 				expected = {_fields:{a:true,b:true}};
 
- 			deps.fields = {a:1,b:1};
 
- 			assert.deepEqual(expected, deps.toParsedDeps());
 
- 		},
 
- 		"should be able to parse dependencies with subfields": function() {
 
- 			var deps = new DepsTracker(),
 
- 				expected = {_fields:{a:true}};
 
- 			deps.fields = {a:1,"a.b":1};
 
- 			assert.deepEqual(expected, deps.toParsedDeps());
 
- 		},
 
- 	},
 
- };
 
 
  |