Browse Source

EAGLESIX-2892 added ParsedDeps unit tests

Austin Meagher 11 years ago
parent
commit
f012f1a223
2 changed files with 68 additions and 5 deletions
  1. 4 5
      lib/pipeline/ParsedDeps.js
  2. 64 0
      test/lib/pipeline/ParsedDeps.js

+ 4 - 5
lib/pipeline/ParsedDeps.js

@@ -29,15 +29,14 @@ proto.extractFields = function extractFields(input) {
  * Private: Handles array-type values for extractFields()
  *
  * @method _arrayHelper
- * @param {Object} json    Object to iterate over
+ * @param {Object} array    Array to iterate over
  * @param {Object} neededFields
  * @return {Array}
  */
-proto._arrayHelper = function _arrayHelper(json, neededFields) {
-    var iterator = json instanceof Array? json : Object.keys(json),
-        values = [];
+proto._arrayHelper = function _arrayHelper(array, neededFields) {
+    var values = [];
 
-    iterator.sort().forEach(function (it) {
+    array.sort().forEach(function (it) {
         if (it instanceof Array)
             values.push(_arrayHelper(it, neededFields));
         else if (it instanceof Object)

+ 64 - 0
test/lib/pipeline/ParsedDeps.js

@@ -0,0 +1,64 @@
+"use strict";
+var assert = require("assert"),
+    ParsedDeps = require("../../../lib/pipeline/ParsedDeps");
+
+module.exports = {
+    "ParsedDeps": {
+        "_documentHelper": {
+            "should skip fields that are not needed": function() {
+                var json = {'foo':'bar'},
+                    neededFields = {},
+                    parse = new ParsedDeps(),
+                    expected = {};
+                assert.deepEqual(expected, parse._documentHelper(json, neededFields));
+            },
+            "should return values that are booleans": function() {
+                var json = {'foo':'bar'},
+                    neededFields = {'foo':true},
+                    parse = new ParsedDeps(),
+                    expected = {'foo':'bar'};
+                assert.deepEqual(expected, parse._documentHelper(json, neededFields));
+            },
+            "should call _arrayHelper on values that are arrays": function() {
+                var json = {'foo':[{'bar':'baz'}]},
+                    neededFields = {'foo':true},
+                    parse = new ParsedDeps(),
+                    expected = {'foo':true};
+                // TODO: mock out _arrayHelper to return true
+                parse._arrayHelper = function() {
+                    return true;
+                };
+                assert.deepEqual(expected, parse._documentHelper(json, neededFields));
+            },
+            "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(expected, parse._documentHelper(json, neededFields));
+            }
+        },
+        "_arrayHelper": {
+            "should call _documentHelper on values that are objects": function() {
+                var array = [{'foo':'bar'}],
+                    neededFields = {'foo':true},
+                    parse = new ParsedDeps(),
+                    expected = [true];
+                // TODO: mock out _documentHelper to return true
+                parse._documentHelper = function() {
+                    return true;
+                };
+                assert.deepEqual(expected, parse._arrayHelper(array, neededFields));
+            },
+            "should recurse on values that are arrays": function() {
+                var array = [[{'foo':'bar'}]],
+                    neededFields = {'foo':true},
+                    parse = new ParsedDeps(),
+                    expected = [[{'foo':'bar'}]];
+                assert.deepEqual(expected, parse._arrayHelper(array, neededFields));
+            }
+        }
+    }
+};
+
+if (!module.parent)(new(require("mocha"))()).ui("exports").reporter("spec").addFile(__filename).run();