import type { APIRequestContext } from "@playwright/test"; import { apiGetData } from "./auth"; type FeatureFlagItem = { flagKey: string; overrideMode: "inherit" | "force_on" | "force_off"; rolloutType: "global" | "department_allowlist"; departmentIds: string[]; note: string; version: number; effectiveEnabled: boolean; }; export async function ensureFeatureFlagOn( api: APIRequestContext, flagKey: string, note = "playwright feature flag setup", ) { const list = await apiGetData<{ items: FeatureFlagItem[] }>(api, "/api/system/feature-flags"); const item = list.items.find((flag) => flag.flagKey === flagKey); if (!item) { throw new Error(`Missing feature flag: ${flagKey}`); } if (item.overrideMode === "force_on" && item.effectiveEnabled) { return; } const response = await api.put(`/api/system/feature-flags/${flagKey}`, { data: { overrideMode: "force_on", rolloutType: "global", departmentIds: [], note, expectedVersion: item.version, }, }); if (!response.ok()) { throw new Error(`Failed to enable feature flag ${flagKey}: ${response.status()} ${await response.text()}`); } }