import { describe, expect, mock, test } from "bun:test"; import { memoryScopes } from "../scoped-db/testing"; const scopes = memoryScopes(); mock.module("../scoped-db", () => scopes.module); const { loadSecuritySettings, reserveSecurityNumbers, saveSecuritySettings } = await import("./settings"); describe("security settings in RepoState", () => { test("defaults, then saved values, per repository", async () => { expect((await loadSecuritySettings("r1")).secretScanning).toBe(true); await saveSecuritySettings("r1", { secretScanning: false, pushProtection: true, privateReporting: true, dependencyGraph: false, }); expect(await loadSecuritySettings("r1")).toEqual({ secretScanning: false, pushProtection: true, privateReporting: true, dependencyGraph: false, }); expect((await loadSecuritySettings("r2")).pushProtection).toBe(false); }); test("alert numbers are reserved in consecutive blocks per repo and kind", async () => { expect(await reserveSecurityNumbers("r1", "code", 3)).toBe(1); expect(await reserveSecurityNumbers("r1", "code", 1)).toBe(4); expect(await reserveSecurityNumbers("r1", "secret", 1)).toBe(1); expect(await reserveSecurityNumbers("r2", "code", 1)).toBe(1); }); });