mirror of
https://github.com/bitwarden/browser
synced 2025-12-23 11:43:46 +00:00
* Rename service-factory folder * Move cryptographic service factories * Move crypto models * Move crypto services * Move domain base class * Platform code owners * Move desktop log services * Move log files * Establish component library ownership * Move background listeners * Move background background * Move localization to Platform * Move browser alarms to Platform * Move browser state to Platform * Move CLI state to Platform * Move Desktop native concerns to Platform * Move flag and misc to Platform * Lint fixes * Move electron state to platform * Move web state to Platform * Move lib state to Platform * Fix broken tests * Rename interface to idiomatic TS * `npm run prettier` 🤖 * Resolve review feedback * Set platform as owners of web core and shared * Expand moved services * Fix test types --------- Co-authored-by: Hinton <hinton@users.noreply.github.com>
100 lines
2.3 KiB
TypeScript
100 lines
2.3 KiB
TypeScript
import { flagEnabled, devFlagEnabled, devFlagValue } from "./flags";
|
|
|
|
describe("flagEnabled", () => {
|
|
beforeEach(() => {
|
|
process.env.FLAGS = JSON.stringify({});
|
|
});
|
|
|
|
it("returns true by default", () => {
|
|
expect(flagEnabled<any>("nonExistentFlag")).toBe(true);
|
|
});
|
|
|
|
it("returns true if enabled", () => {
|
|
process.env.FLAGS = JSON.stringify({
|
|
newFeature: true,
|
|
});
|
|
|
|
expect(flagEnabled<any>("newFeature")).toBe(true);
|
|
});
|
|
|
|
it("returns false if disabled", () => {
|
|
process.env.FLAGS = JSON.stringify({
|
|
newFeature: false,
|
|
});
|
|
|
|
expect(flagEnabled<any>("newFeature")).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe("devFlagEnabled", () => {
|
|
beforeEach(() => {
|
|
process.env.DEV_FLAGS = JSON.stringify({});
|
|
});
|
|
|
|
describe("in a development environment", () => {
|
|
beforeEach(() => {
|
|
process.env.ENV = "development";
|
|
});
|
|
|
|
it("returns true by default", () => {
|
|
expect(devFlagEnabled<any>("nonExistentFlag")).toBe(true);
|
|
});
|
|
|
|
it("returns true if enabled", () => {
|
|
process.env.DEV_FLAGS = JSON.stringify({
|
|
devHack: true,
|
|
});
|
|
|
|
expect(devFlagEnabled<any>("devHack")).toBe(true);
|
|
});
|
|
|
|
it("returns true if truthy", () => {
|
|
process.env.DEV_FLAGS = JSON.stringify({
|
|
devHack: { key: 3 },
|
|
});
|
|
|
|
expect(devFlagEnabled<any>("devHack")).toBe(true);
|
|
});
|
|
|
|
it("returns false if disabled", () => {
|
|
process.env.DEV_FLAGS = JSON.stringify({
|
|
devHack: false,
|
|
});
|
|
|
|
expect(devFlagEnabled<any>("devHack")).toBe(false);
|
|
});
|
|
});
|
|
|
|
it("always returns false in prod", () => {
|
|
process.env.ENV = "production";
|
|
process.env.DEV_FLAGS = JSON.stringify({
|
|
devHack: true,
|
|
});
|
|
|
|
expect(devFlagEnabled<any>("devHack")).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe("devFlagValue", () => {
|
|
beforeEach(() => {
|
|
process.env.DEV_FLAGS = JSON.stringify({});
|
|
process.env.ENV = "development";
|
|
});
|
|
|
|
it("throws if dev flag is disabled", () => {
|
|
process.env.DEV_FLAGS = JSON.stringify({
|
|
devHack: false,
|
|
});
|
|
|
|
expect(() => devFlagValue<any>("devHack")).toThrow("it is protected by a disabled dev flag");
|
|
});
|
|
|
|
it("returns the dev flag value", () => {
|
|
process.env.DEV_FLAGS = JSON.stringify({
|
|
devHack: "Hello world",
|
|
});
|
|
|
|
expect(devFlagValue<any>("devHack")).toBe("Hello world");
|
|
});
|
|
});
|