import { describe, expect, test } from "bun:test"; import { defineFlags } from "./define-flags"; import { resolveAllFlags, resolveFlag } from "./resolve-flags"; const testFlags = defineFlags({ TEST_FLAG: { description: "Test flag", defaults: { development: true, staging: true, preview: true, production: false, }, }, SECOND_FLAG: { description: "Second test flag", defaults: { development: false, production: true, }, }, }); describe("resolveFlag", () => { test("uses declared environment defaults and falls back to production", () => { expect( resolveFlag(testFlags, "TEST_FLAG", { env: { NODE_ENV: "development" } }) ).toBe(true); expect( resolveFlag(testFlags, "TEST_FLAG", { env: { NODE_ENV: "staging" } }) ).toBe(true); expect( resolveFlag(testFlags, "TEST_FLAG", { env: { NODE_ENV: "preview" } }) ).toBe(true); expect( resolveFlag(testFlags, "TEST_FLAG", { env: { NODE_ENV: "test" } }) ).toBe(false); expect(resolveFlag(testFlags, "TEST_FLAG", { env: {} })).toBe(false); }); test("uses valid FLAG overrides before defaults", () => { expect( resolveFlag(testFlags, "TEST_FLAG", { env: { FLAG_TEST_FLAG: "TrUe", NODE_ENV: "production" }, }) ).toBe(true); expect( resolveFlag(testFlags, "TEST_FLAG", { env: { FLAG_TEST_FLAG: "FALSE", NODE_ENV: "development" }, }) ).toBe(false); }); test("requires exact FLAG env var keys", () => { expect( resolveFlag(testFlags, "TEST_FLAG", { env: { flag_test_flag: "true", NODE_ENV: "production" }, }) ).toBe(false); }); test("falls back to defaults and warns once for invalid overrides", () => { const warnings: string[] = []; const warn = (message: string) => warnings.push(message); const env = { FLAG_TEST_FLAG: "yes", NODE_ENV: "development" }; expect(resolveFlag(testFlags, "TEST_FLAG", { env, warn })).toBe(true); expect(resolveFlag(testFlags, "TEST_FLAG", { env, warn })).toBe(true); expect(warnings).toHaveLength(1); expect(warnings[0]).toContain("FLAG_TEST_FLAG"); }); test("resolves all flags into a boolean snapshot", () => { expect( resolveAllFlags(testFlags, { env: { FLAG_TEST_FLAG: "true", NODE_ENV: "production" }, }) ).toEqual({ TEST_FLAG: true, SECOND_FLAG: true, }); }); });