You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2018/02/01 15:30:20 UTC

[09/50] [abbrv] tinkerpop git commit: Traversal iterate() method

Traversal iterate() method


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/219ead0e
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/219ead0e
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/219ead0e

Branch: refs/heads/TINKERPOP-1857
Commit: 219ead0ebe728a5694a857da2f221f7e3f3e6237
Parents: 53a7f27
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Mon Nov 27 12:22:08 2017 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Fri Jan 19 09:30:16 2018 +0100

----------------------------------------------------------------------
 gremlin-javascript/glv/TraversalSource.template | 12 +++++++++++
 .../gremlin-javascript/lib/process/traversal.js | 12 +++++++++++
 .../javascript/gremlin-javascript/package.json  |  2 +-
 .../test/unit/traversal-test.js                 | 21 ++++++++++++++++++--
 4 files changed, 44 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/219ead0e/gremlin-javascript/glv/TraversalSource.template
----------------------------------------------------------------------
diff --git a/gremlin-javascript/glv/TraversalSource.template b/gremlin-javascript/glv/TraversalSource.template
index f75765f..0d45e90 100644
--- a/gremlin-javascript/glv/TraversalSource.template
+++ b/gremlin-javascript/glv/TraversalSource.template
@@ -58,6 +58,18 @@ Traversal.prototype.toList = function () {
 };
 
 /**
+ * Iterates all Traverser instances in the traversal.
+ * @returns {Promise}
+ */
+Traversal.prototype.iterate = function () {
+  return this._applyStrategies().then(() => {
+    let it;
+    while ((it = this._getNext()) && !it.done) {
+    }
+  });
+};
+
+/**
  * Async iterator method implementation.
  * Returns a promise containing an iterator item.
  * @returns {Promise.<{value, done}>}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/219ead0e/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
index ebf8755..d887fe0 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/process/traversal.js
@@ -58,6 +58,18 @@ Traversal.prototype.toList = function () {
 };
 
 /**
+ * Iterates all Traverser instances in the traversal.
+ * @returns {Promise}
+ */
+Traversal.prototype.iterate = function () {
+  return this._applyStrategies().then(() => {
+    let it;
+    while ((it = this._getNext()) && !it.done) {
+    }
+  });
+};
+
+/**
  * Async iterator method implementation.
  * Returns a promise containing an iterator item.
  * @returns {Promise.<{value, done}>}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/219ead0e/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
index aae9eb9..7c4a3d6 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
@@ -30,7 +30,7 @@
   },
   "scripts": {
     "test": "./node_modules/.bin/mocha test/unit test/integration -t 5000",
-    "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/",
+    "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/map/AddVertex.feature",
     "unit-test": "./node_modules/.bin/mocha test/unit"
   },
   "engines": {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/219ead0e/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
index 635c7e8..2be504b 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/unit/traversal-test.js
@@ -32,7 +32,6 @@ const TraversalStrategies = require('../../lib/process/traversal-strategy').Trav
 describe('Traversal', function () {
 
   describe('#getByteCode()', function () {
-
     it('should add steps for with a string parameter', function () {
       var g = new graph.Graph().traversal();
       var bytecode = g.V().out('created').getBytecode();
@@ -61,7 +60,6 @@ describe('Traversal', function () {
   });
 
   describe('#next()', function () {
-
     it('should apply the strategies and return a Promise with the iterator item', function () {
       var strategyMock = {
         apply: function (traversal) {
@@ -175,4 +173,23 @@ describe('Traversal', function () {
         });
     });
   });
+
+  describe('#iterate()', function () {
+    it('should apply the strategies and return a Promise', function () {
+      let applied = false;
+      const strategyMock = {
+        apply: function (traversal) {
+          applied = true;
+          traversal.traversers = [ new t.Traverser('a', 1), new t.Traverser('b', 1) ];
+          return utils.resolvedPromise();
+        }
+      };
+      const strategies = new TraversalStrategies();
+      strategies.addStrategy(strategyMock);
+      const traversal = new t.Traversal(null, strategies, null);
+      return traversal.iterate().then(() => {
+        assert.strictEqual(applied, true);
+      });
+    });
+  });
 });
\ No newline at end of file