1
0
Fork 0
firefox/toolkit/components/nimbus/test/unit/test_ExperimentManager_context.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

60 lines
1.6 KiB
JavaScript

"use strict";
const { FirstStartup } = ChromeUtils.importESModule(
"resource://gre/modules/FirstStartup.sys.mjs"
);
add_task(async function test_createTargetingContext() {
const manager = NimbusTestUtils.stubs.manager();
const sandbox = sinon.createSandbox();
const recipe = NimbusTestUtils.factories.recipe("foo");
const rollout = NimbusTestUtils.factories.rollout("bar");
sandbox.stub(manager.store, "ready").resolves();
sandbox.stub(manager.store, "getAllActiveExperiments").returns([recipe]);
sandbox.stub(manager.store, "getAllActiveRollouts").returns([rollout]);
sandbox.stub(manager.store, "getAll").returns([
{
slug: "foo",
branch: {
slug: "bar",
},
},
{
slug: "baz",
branch: {
slug: "qux",
},
},
]);
let context = manager.createTargetingContext();
const activeSlugs = await context.activeExperiments;
const activeRollouts = await context.activeRollouts;
const enrollments = await context.enrollmentsMap;
Assert.ok(!context.isFirstStartup, "should not set the first startup flag");
Assert.deepEqual(
activeSlugs,
["foo"],
"should return slugs for all the active experiment"
);
Assert.deepEqual(
activeRollouts,
["bar"],
"should return slugs for all rollouts stored"
);
Assert.deepEqual(
enrollments,
{
foo: "bar",
baz: "qux",
},
"should return a map of slugs to branch slugs"
);
// Pretend to be in the first startup
FirstStartup._state = FirstStartup.IN_PROGRESS;
context = manager.createTargetingContext();
Assert.ok(context.isFirstStartup, "should set the first startup flag");
});