Skip to content

Commit dc33f99

Browse files
author
Krishna Rajendran
authored
Fix bug where opt out setting was clobbered by restoring data from cookie (#196)
1 parent 765ab7c commit dc33f99

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/amplitude-client.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,10 @@ var _loadCookieDataProps = function _loadCookieDataProps(scope, cookieData) {
517517
scope.options.userId = cookieData.userId;
518518
}
519519
if (cookieData.optOut !== null && cookieData.optOut !== undefined) {
520-
scope.options.optOut = cookieData.optOut;
520+
// Do not clobber config opt out value if cookieData has optOut as false
521+
if (cookieData.optOut !== false) {
522+
scope.options.optOut = cookieData.optOut;
523+
}
521524
}
522525
if (cookieData.sessionId) {
523526
scope._sessionId = parseInt(cookieData.sessionId);

test/amplitude-client.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2579,6 +2579,14 @@ describe('setVersionName', function() {
25792579
assert.strictEqual(amplitude2.options.optOut, true);
25802580
});
25812581

2582+
it('should favor the config optOut setting over cookie optOut if the config optOut is set to true', function() {
2583+
var amplitude = new AmplitudeClient();
2584+
cookie.set(amplitude.options.cookieName, { optOut: false });
2585+
amplitude.init(apiKey, null, { optOut: true });
2586+
2587+
assert.strictEqual(amplitude.options.optOut, true);
2588+
});
2589+
25822590
it('should limit identify events queued', function() {
25832591
amplitude.init(apiKey, null, {savedMaxCount: 10});
25842592

0 commit comments

Comments
 (0)