ParsedDeps.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. "use strict";
  2. var assert = require("assert"),
  3. ParsedDeps = require("../../../lib/pipeline/ParsedDeps");
  4. module.exports = {
  5. "ParsedDeps": {
  6. "#extractFields": {
  7. "should be able to convert a document to its projected form": function() {
  8. var deps = {'a': true, 'b': true},
  9. doc = {a:23, b:64, c:92},
  10. parse = new ParsedDeps(deps);
  11. var proj = parse.extractFields(doc);
  12. assert.deepEqual({a:23,b:64}, proj);
  13. }
  14. },
  15. "#_documentHelper": {
  16. "should skip fields that are not needed": function() {
  17. var json = {'foo':'bar'},
  18. neededFields = {},
  19. parse = new ParsedDeps(),
  20. expected = {};
  21. assert.deepEqual(expected, parse._documentHelper(json, neededFields));
  22. },
  23. "should return values that are booleans": function() {
  24. var json = {'foo':'bar'},
  25. neededFields = {'foo':true},
  26. parse = new ParsedDeps(),
  27. expected = {'foo':'bar'};
  28. assert.deepEqual(expected, parse._documentHelper(json, neededFields));
  29. },
  30. "should call _arrayHelper on values that are arrays": function() {
  31. var json = {'foo':[{'bar':'baz'}], 'a': 'b'},
  32. neededFields = {'foo':true},
  33. parse = new ParsedDeps(),
  34. expected = {'foo':[{bar:'baz'}]};
  35. assert.deepEqual(expected, parse._documentHelper(json, neededFields));
  36. },
  37. "should recurse on values that are objects": function() {
  38. var json = {'foo':{'bar':'baz'}},
  39. neededFields = {'foo':true},
  40. parse = new ParsedDeps(),
  41. expected = {'foo':{'bar':'baz'}};
  42. assert.deepEqual(expected, parse._documentHelper(json, neededFields));
  43. }
  44. },
  45. "#_arrayHelper": {
  46. "should call _documentHelper on values that are objects": function() {
  47. var array = [{'foo':'bar'}],
  48. neededFields = {'foo':true},
  49. parse = new ParsedDeps(),
  50. expected = [{foo:'bar'}];
  51. assert.deepEqual(expected, parse._arrayHelper(array, neededFields));
  52. },
  53. "should recurse on values that are arrays": function() {
  54. var array = [[{'foo':'bar'}]],
  55. neededFields = {'foo':true},
  56. parse = new ParsedDeps(),
  57. expected = [[{'foo':'bar'}]];
  58. var actual = parse._arrayHelper(array, neededFields);
  59. assert.deepEqual(actual, expected);
  60. }
  61. }
  62. }
  63. };
  64. if (!module.parent)(new(require("mocha"))()).ui("exports").reporter("spec").addFile(__filename).run();