Skip to content

Commit 484f568

Browse files
committed
Fix CI complaints and one actual bug
Fix things Travis was complaining about, one of which (an early `return` I'd left behind) was actually masking a real bug.
1 parent 4714d16 commit 484f568

File tree

2 files changed

+76
-81
lines changed

2 files changed

+76
-81
lines changed

src/connection/__tests__/arrayconnection.js

Lines changed: 72 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -657,93 +657,91 @@ describe('connectionFromArraySlice()', () => {
657657
var letters = ['A', 'B', 'C', 'D', 'E'];
658658

659659
it('works with a just-right array slice', () => {
660-
var c = connectionFromArraySlice(
661-
letters.slice(1, 3),
660+
var c = connectionFromArraySlice(
661+
letters.slice(1, 3),
662+
{
663+
first: 2,
664+
after: 'YXJyYXljb25uZWN0aW9uOjA=',
665+
},
666+
{
667+
sliceStart: 1,
668+
arrayLength: 5,
669+
}
670+
);
671+
return expect(c).to.deep.equal({
672+
edges: [
662673
{
663-
first: 2,
664-
after: 'YXJyYXljb25uZWN0aW9uOjA=',
674+
node: 'B',
675+
cursor: 'YXJyYXljb25uZWN0aW9uOjE=',
665676
},
666677
{
667-
sliceStart: 1,
668-
arrayLength: 5,
669-
}
670-
);
671-
return expect(c).to.deep.equal({
672-
edges: [
673-
{
674-
node: 'B',
675-
cursor: 'YXJyYXljb25uZWN0aW9uOjE=',
676-
},
677-
{
678-
node: 'C',
679-
cursor: 'YXJyYXljb25uZWN0aW9uOjI=',
680-
},
681-
],
682-
pageInfo: {
683-
startCursor: 'YXJyYXljb25uZWN0aW9uOjE=',
684-
endCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
685-
hasPreviousPage: false,
686-
hasNextPage: true,
687-
}
688-
});
678+
node: 'C',
679+
cursor: 'YXJyYXljb25uZWN0aW9uOjI=',
680+
},
681+
],
682+
pageInfo: {
683+
startCursor: 'YXJyYXljb25uZWN0aW9uOjE=',
684+
endCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
685+
hasPreviousPage: false,
686+
hasNextPage: true,
687+
}
688+
});
689689
});
690690

691691
it('works with an oversized array slice', () => {
692-
return
693-
var c = connectionFromArraySlice(
694-
letters.slice(1, 4),
692+
var c = connectionFromArraySlice(
693+
letters.slice(1, 4),
694+
{
695+
first: 1,
696+
after: 'YXJyYXljb25uZWN0aW9uOjE=',
697+
},
698+
{
699+
sliceStart: 1,
700+
arrayLength: 5,
701+
}
702+
);
703+
return expect(c).to.deep.equal({
704+
edges: [
695705
{
696-
first: 1,
697-
after: 'YXJyYXljb25uZWN0aW9uOjI=',
706+
node: 'C',
707+
cursor: 'YXJyYXljb25uZWN0aW9uOjI=',
698708
},
699-
{
700-
sliceStart: 1,
701-
arrayLength: 5,
702-
}
703-
);
704-
return expect(c).to.deep.equal({
705-
edges: [
706-
{
707-
node: 'C',
708-
cursor: 'YXJyYXljb25uZWN0aW9uOjI=',
709-
},
710-
],
711-
pageInfo: {
712-
startCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
713-
endCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
714-
hasPreviousPage: false,
715-
hasNextPage: true,
716-
}
717-
});
709+
],
710+
pageInfo: {
711+
startCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
712+
endCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
713+
hasPreviousPage: false,
714+
hasNextPage: true,
715+
}
716+
});
718717
});
719718

720719
it('works with an undersized array slice', () => {
721-
return
722-
var c = connectionFromArraySlice(
723-
letters.slice(2, 3),
720+
var c = connectionFromArraySlice(
721+
letters.slice(2, 3),
722+
{
723+
first: 3,
724+
after: 'YXJyYXljb25uZWN0aW9uOjE=',
725+
},
726+
{
727+
sliceStart: 2,
728+
arrayLength: 5,
729+
}
730+
);
731+
return expect(c).to.deep.equal({
732+
edges: [
724733
{
725-
first: 3,
726-
after: 'YXJyYXljb25uZWN0aW9uOjE=',
734+
node: 'C',
735+
cursor: 'YXJyYXljb25uZWN0aW9uOjI=',
727736
},
728-
{
729-
sliceStart: 2,
730-
arrayLength: 5,
731-
}
732-
);
733-
return expect(c).to.deep.equal({
734-
edges: [
735-
{
736-
node: 'C',
737-
cursor: 'YXJyYXljb25uZWN0aW9uOjI=',
738-
},
739-
],
740-
pageInfo: {
741-
startCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
742-
endCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
743-
hasPreviousPage: false,
744-
hasNextPage: true,
745-
}
746-
});
737+
],
738+
pageInfo: {
739+
startCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
740+
endCursor: 'YXJyYXljb25uZWN0aW9uOjI=',
741+
hasPreviousPage: false,
742+
hasNextPage: true,
743+
}
744+
});
747745
});
748746
});
749747

src/connection/arrayconnection.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,10 @@ export function connectionFromArraySlice<T>(
9898
}
9999

100100
// If supplied slice is too large, trim it down before mapping over it.
101-
var slice = arraySlice;
102-
if (sliceStart < startOffset || sliceEnd > endOffset) {
103-
slice = arraySlice.slice(
104-
Math.max(startOffset, sliceStart),
105-
Math.min(endOffset, sliceEnd)
106-
);
107-
}
101+
var slice = arraySlice.slice(
102+
Math.max(startOffset - sliceStart, 0),
103+
arraySlice.length - (sliceEnd - endOffset)
104+
);
108105

109106
var edges = slice.map((value, index) => ({
110107
cursor: offsetToCursor(startOffset + index),

0 commit comments

Comments
 (0)