UNPKG

@reliance/feature-flags

Version:

A package for determining feature flag status based on environment variables or flag objects.

57 lines (46 loc) 2.06 kB
const { isFeatureEnabled, setFeature } = require("../src"); const features = { newUI: (params) => params.isBetaUser === true, adminDashboard: (params) => params.admin === true, roleSpecific: (params) => { return params.roles.includes("QA") || params.roles.includes("admin"); }, }; // Set up environment variables for testing beforeAll(() => { process.env.viewPrescription = "true"; process.env.anotherFeature = "false"; setFeature(features); }); describe("isFeatureEnabled", () => { test("should return true for newUI feature if isBetaUser is true", () => { const betaUserParams = { isBetaUser: true }; expect(isFeatureEnabled("newUI", betaUserParams)).toBe(true); }); test("should return false for newUI feature if isBetaUser is false", () => { const betaUserParams = { isBetaUser: false }; expect(isFeatureEnabled("newUI", betaUserParams)).toBe(false); }); test("should return true for adminDashboard feature if admin is true", () => { const adminParams = { admin: true }; expect(isFeatureEnabled("adminDashboard", adminParams)).toBe(true); }); test("should return false for adminDashboard feature if admin is false", () => { const adminParams = { admin: false }; expect(isFeatureEnabled("adminDashboard", adminParams)).toBe(false); }); test("should return true for roleSpecific feature if roles include QA or admin", () => { const userRoles = { roles: ["admin", "QA"] }; expect(isFeatureEnabled("roleSpecific", userRoles)).toBe(true); }); test("should return false for roleSpecific feature if roles do not include QA or admin", () => { const userRoles = { roles: ["user"] }; expect(isFeatureEnabled("roleSpecific", userRoles)).toBe(false); }); test("should return true for viewPrescription feature if it is set to true in environment variables", () => { expect(isFeatureEnabled("viewPrescription")).toBe(true); }); test("should return false for non-existing feature", () => { expect(isFeatureEnabled("nonExistingFeature")).toBe(false); }); });