Skip to content

Commit 620d2f6

Browse files
committed
Merge pull request #31 from pontusmelke/1.0-path-bug
Properly treat single node paths
2 parents bf82d0a + 897fe5e commit 620d2f6

File tree

4 files changed

+15
-14
lines changed

4 files changed

+15
-14
lines changed

gulpfile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ gulp.task('run-tck', ['download-tck', 'nodejs'], function() {
205205
return gulp.src(featureHome + "/*").pipe(cucumber({
206206
'steps': 'test/v1/tck/steps/*.js',
207207
'format': 'pretty',
208-
'tags' : ['~@in_dev', '~@db','~@match_acceptance']
208+
'tags' : ['~@in_dev', '~@db']
209209
}));
210210
});
211211

src/v1/graph-types.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ class PathSegment {
146146
* @param {Relationship} rel - Relationship segment
147147
* @param {string} end - Identity of end Node
148148
*/
149-
constructor( start, rel, end ) {
149+
constructor(start, rel, end) {
150150
this.start = start;
151151
this.relationship = rel;
152152
this.end = end;
@@ -159,12 +159,14 @@ class PathSegment {
159159
class Path {
160160
/**
161161
* @constructor
162+
* @param {Node} start - start node
163+
* @param {Node} end - end node
162164
* @param {Array} segments - Array of Segments
163165
*/
164-
constructor(segments) {
166+
constructor(start, end, segments) {
167+
this.start = start;
168+
this.end = end;
165169
this.segments = segments;
166-
this.start = segments[0].start;
167-
this.end = segments[segments.length - 1].end;
168170
this.length = segments.length;
169171
}
170172
}

src/v1/internal/connector.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ let _mappers = {
114114
sequence = unpacker.unpack(buf);
115115
let prevNode = nodes[0],
116116
segments = [];
117+
117118
for (let i = 0; i < sequence.length; i += 2) {
118119
let relIndex = sequence[i],
119120
nextNode = nodes[sequence[i + 1]],
@@ -138,9 +139,9 @@ let _mappers = {
138139
segments.push( new GraphType.PathSegment( prevNode, rel, nextNode ) );
139140
prevNode = nextNode;
140141
}
141-
return new GraphType.Path( segments );
142+
return new GraphType.Path(nodes[0], nodes[nodes.length - 1], segments );
142143
}
143-
}
144+
};
144145

145146
/**
146147
* A connection manages sending and recieving messages over a channel. A

test/v1/tck/steps/matchacceptencesteps.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,17 @@ module.exports = function () {
2424
var successCallback = function(res) {
2525
var givenResults = [];
2626
var expectedPrint = printable(self.expectedResults);
27-
for (var i = 0 ; i < res.records.length; i++)
28-
{
27+
for (var i = 0 ; i < res.records.length; i++) {
2928
givenResults.push(getTestObject(res.records[i]));
3029
}
31-
if ( givenResults.length != self.expectedResults.length)
32-
{
30+
if ( givenResults.length != self.expectedResults.length) {
3331
callback(new Error("Given and expected length of result array does not match. Give: " + givenResults.length + " Expected " + self.expectedResults.length));
3432
}
3533
if (!comapareResults(givenResults, self.expectedResults) ) {
3634
callback(new Error("Given and expected results does not match: " + printable(givenResults) + " Expected " + expectedPrint));
3735
}
3836
callback();
39-
}
37+
};
4038
this.rc.then(successCallback).catch(errorCallback);
4139
});
4240

@@ -135,12 +133,12 @@ module.exports = function () {
135133
var id = 0;
136134
var startid = neo4j.int(path.start.identity.toString());
137135
var segments = path.segments;
138-
for (var i in segments) {
136+
for (var i = 0; i < segments.length; i++) {
139137
var segment = segments[i];
140-
var relationship = segment.relationship;
141138
if (startid.notEquals(segment.start.identity)) {
142139
throw new Error("Path segment does not make sense")
143140
}
141+
var relationship = segment.relationship;
144142
var endId = neo4j.int(segment.end.identity.toString());
145143
relationship.identity = neo4j.int(0);
146144
segment.start.identity = neo4j.int(id++);

0 commit comments

Comments
 (0)