8000 [FSSDK-9984] fix: Empty fetched qualified segments validity (#916) · optimizely/javascript-sdk@a1e6110 · GitHub
[go: up one dir, main page]

Skip to content

Commit a1e6110

Browse files
mikechu-optimizelyMike Chu
and
Mike Chu
authored
[FSSDK-9984] fix: Empty fetched qualified segments validity (#916)
* fix: empty segments array is valid; null segments is invalid * test: add tests around segment valid returns --------- Co-authored-by: Mike Chu <michael.chu@optmizely.com>
1 parent 6be2631 commit a1e6110

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

lib/optimizely_user_context/index.tests.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ describe('lib/optimizely_user_context', function() {
991991
});
992992

993993
describe('fetchQualifiedSegments', () => {
994-
it('should successfully call fetch qualified segments', async () => {
994+
it('should successfully get segments', async () => {
995995
fakeOptimizely = {
996996
fetchQualifiedSegments: sinon.stub().returns(['a']),
997997
};
@@ -1001,13 +1001,41 @@ describe('lib/optimizely_user_context', function() {
10011001
userId,
10021002
});
10031003

1004-
const fetchedQualifiedSegments = await user.fetchQualifiedSegments();
1005-
assert.deepEqual(fetchedQualifiedSegments, true);
1004+
const successfullyFetched = await user.fetchQualifiedSegments();
1005+
assert.deepEqual(successfullyFetched, true);
10061006

10071007
sinon.assert.calledWithExactly(fakeOptimizely.fetchQualifiedSegments, userId, undefined);
10081008

10091009
assert.deepEqual(user.qualifiedSegments, ['a']);
10101010
});
1011+
1012+
it('should return true empty returned segements', async () => {
1013+
fakeOptimizely = {
1014+
fetchQualifiedSegments: sinon.stub().returns([]),
1015+
};
1016+
const user = new OptimizelyUserContext({
1017+
shouldIdentifyUser: false,
1018+
optimizely: fakeOptimizely,
1019+
userId,
1020+
});
1021+
1022+
const successfullyFetched = await user.fetchQualifiedSegments();
1023+
assert.deepEqual(successfullyFetched, true);
1024+
});
1025+
1026+
it('should return false in other cases', async () => {
1027+
fakeOptimizely = {
1028+
fetchQualifiedSegments: sinon.stub().returns(null),
1029+
};
1030+
const user = new OptimizelyUserContext({
1031+
shouldIdentifyUser: false,
1032+
optimizely: fakeOptimizely,
1033+
userId,
1034+
});
1035+
1036+
const successfullyFetched = await user.fetchQualifiedSegments();
1037+
assert.deepEqual(successfullyFetched, false);
1038+
});
10111039
});
10121040

10131041
describe('isQualifiedFor', () => {

lib/optimizely_user_context/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ export default class OptimizelyUserContext implements IOptimizelyUserContext {
258258

259259
this.qualifiedSegments = segments;
260260

261-
return !!segments;
261+
return segments !== null;
262262
}
263263

264264
/**

0 commit comments

Comments
 (0)
0