| 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());
- },
- },
- };
|