Loading browser/components/tests/browser/browser_browserGlue_upgradeDialog.js +2 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ http://creativecommons.org/publicdomain/zero/1.0/ */ const { ExperimentFakes } = ChromeUtils.import( "resource://testing-common/NimbusTestUtils.jsm" ); const { NimbusFeatures, ExperimentFeature } = ChromeUtils.import( const { NimbusFeatures, ExperimentFeature, ExperimentAPI } = ChromeUtils.import( "resource://nimbus/ExperimentAPI.jsm" ); Loading Loading @@ -294,6 +294,7 @@ add_task(async function not_major_upgrade() { }); add_task(async function remote_disabled() { await ExperimentAPI.ready(); await ExperimentFakes.remoteDefaultsHelper({ feature: NimbusFeatures.upgradeDialog, configuration: { enabled: false, variables: {} }, Loading toolkit/components/nimbus/test/NimbusTestUtils.jsm +3 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,9 @@ const ExperimentFakes = { store = ExperimentManager.store, configuration, }) { if (!store._isReady) { throw new Error("Store not ready, need to `await ExperimentAPI.ready()`"); } store.updateRemoteConfigs(feature.featureId, configuration); return feature.ready(); Loading toolkit/components/nimbus/test/unit/test_ExperimentAPI_ExperimentFeature.js +28 −0 Original line number Diff line number Diff line Loading @@ -434,3 +434,31 @@ add_task(async function test_prevent_double_exposure_isEnabled() { sandbox.restore(); }); add_task(async function test_set_remote_before_ready() { let sandbox = sinon.createSandbox(); const manager = ExperimentFakes.manager(); sandbox.stub(ExperimentAPI, "_store").get(() => manager.store); const feature = new ExperimentFeature("foo", FAKE_FEATURE_MANIFEST); Assert.throws( () => ExperimentFakes.remoteDefaultsHelper({ feature, store: manager.store, configuration: { variables: { test: true } }, }), /Store not ready/, "Throws if used before init finishes" ); await manager.onStartup(); await ExperimentFakes.remoteDefaultsHelper({ feature, store: manager.store, configuration: { variables: { test: true } }, }); Assert.ok(feature.getValue().test, "Successfully set"); }); Loading
browser/components/tests/browser/browser_browserGlue_upgradeDialog.js +2 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ http://creativecommons.org/publicdomain/zero/1.0/ */ const { ExperimentFakes } = ChromeUtils.import( "resource://testing-common/NimbusTestUtils.jsm" ); const { NimbusFeatures, ExperimentFeature } = ChromeUtils.import( const { NimbusFeatures, ExperimentFeature, ExperimentAPI } = ChromeUtils.import( "resource://nimbus/ExperimentAPI.jsm" ); Loading Loading @@ -294,6 +294,7 @@ add_task(async function not_major_upgrade() { }); add_task(async function remote_disabled() { await ExperimentAPI.ready(); await ExperimentFakes.remoteDefaultsHelper({ feature: NimbusFeatures.upgradeDialog, configuration: { enabled: false, variables: {} }, Loading
toolkit/components/nimbus/test/NimbusTestUtils.jsm +3 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,9 @@ const ExperimentFakes = { store = ExperimentManager.store, configuration, }) { if (!store._isReady) { throw new Error("Store not ready, need to `await ExperimentAPI.ready()`"); } store.updateRemoteConfigs(feature.featureId, configuration); return feature.ready(); Loading
toolkit/components/nimbus/test/unit/test_ExperimentAPI_ExperimentFeature.js +28 −0 Original line number Diff line number Diff line Loading @@ -434,3 +434,31 @@ add_task(async function test_prevent_double_exposure_isEnabled() { sandbox.restore(); }); add_task(async function test_set_remote_before_ready() { let sandbox = sinon.createSandbox(); const manager = ExperimentFakes.manager(); sandbox.stub(ExperimentAPI, "_store").get(() => manager.store); const feature = new ExperimentFeature("foo", FAKE_FEATURE_MANIFEST); Assert.throws( () => ExperimentFakes.remoteDefaultsHelper({ feature, store: manager.store, configuration: { variables: { test: true } }, }), /Store not ready/, "Throws if used before init finishes" ); await manager.onStartup(); await ExperimentFakes.remoteDefaultsHelper({ feature, store: manager.store, configuration: { variables: { test: true } }, }); Assert.ok(feature.getValue().test, "Successfully set"); });