From a1536e391a2059d2360f7f94694c9e7fbf3fa081 Mon Sep 17 00:00:00 2001 From: Marina Samuel Date: Thu, 20 Oct 2016 17:47:03 -0400 Subject: [PATCH] chore(addon): Fixes #1521 - Disable ExperimentProvider for SHIELD study users. --- addon/ActivityStreams.js | 4 +++- test/test-ExperimentProvider.js | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/addon/ActivityStreams.js b/addon/ActivityStreams.js index d53a4d2a0b..dd1ed418c5 100644 --- a/addon/ActivityStreams.js +++ b/addon/ActivityStreams.js @@ -99,7 +99,9 @@ ActivityStreams.prototype = { this._initializeAppURLHider(); this._initializeMemoizer(); - this._experimentProvider.init(); + if (!this.options.shield_variant) { + this._experimentProvider.init(); + } this._tabTracker.init(this.appURLs, this._memoized, this._experimentProvider.experimentId); this._initializeSearchProvider(); this._initializePreviewProvier(this._experimentProvider, this._metadataStore, this._tabTracker); diff --git a/test/test-ExperimentProvider.js b/test/test-ExperimentProvider.js index c01974ba28..d2cc23d043 100644 --- a/test/test-ExperimentProvider.js +++ b/test/test-ExperimentProvider.js @@ -11,4 +11,31 @@ exports["test ActivityStreams has experimentProvider instance"] = assert => { as.unload(); }; +exports["test ActivityStreams doesn't init experimentProvider"] = assert => { + const as = getTestActivityStream({ + experiments: { + foo: { + name: "Foo Test", + description: "A test about foo", + control: { + value: false, + description: "Foo is 42 by default" + }, + variant: { + id: "foo_01", + value: true, + threshold: 0.5, + description: "Twice the foo" + } + } + }, + rng: () => 0.1, + shield_variant: "test" + }); + assert.ok(as._experimentProvider instanceof ExperimentProvider, "should have _experimentProvider"); + assert.equal(as._experimentProvider.experimentId, null, "should be null if shield variant set"); + assert.deepEqual(as._experimentProvider.data, {}, "should have empty .data"); + as.unload(); +}; + test.run(exports);