Bin
2025-12-16 9e0b2ba2c317b1a86212f24cbae3195ad1f3dbfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { LabelStudio } from "@humansignal/frontend-test/helpers/LSF";
 
describe("Feature Flags", () => {
  it("can set feature flags on the global object", () => {
    const flagName = "customFeatureFlag";
    const anotherFlag = "anotherFlag";
 
    cy.visit("/");
 
    LabelStudio.setFeatureFlags({
      [flagName]: true,
    });
 
    LabelStudio.featureFlag(flagName).should("be.true");
    LabelStudio.featureFlag(anotherFlag).should("be.false");
  });
 
  it("can set feature flags before navigation", () => {
    // setting only this flag
    const flagName = "customFeatureFlag";
    const anotherFlag = "anotherFlag";
 
    LabelStudio.setFeatureFlagsOnPageLoad({
      [flagName]: true,
    });
 
    cy.visit("/");
 
    LabelStudio.featureFlag(flagName).should("be.true");
    LabelStudio.featureFlag(anotherFlag).should("be.false");
  });
 
  // helpers' self-testing to keep it clear
  it("can extend previously set flag list and set them all before navigation", () => {
    // setting only this flag
    const setFlagName = "setFlag";
    const setButCanceledFlag = "setButCanceledFlag";
    const addedFlagName = "addedFlag";
 
    LabelStudio.setFeatureFlagsOnPageLoad({
      [setFlagName]: true,
      [setButCanceledFlag]: true,
    });
 
    LabelStudio.addFeatureFlagsOnPageLoad({
      [setButCanceledFlag]: false,
      [addedFlagName]: true,
    });
 
    cy.visit("/");
 
    LabelStudio.featureFlag(setFlagName).should("be.true");
    LabelStudio.featureFlag(setButCanceledFlag).should("be.false");
    LabelStudio.featureFlag(addedFlagName).should("be.true");
  });
});