mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-08-29 02:45:39 -04:00
Migrate the entire monorepo from Biome 2.4.7 to oxlint 1.56.0 (linter) and oxfmt 0.41.0 (formatter) for faster lint/format and broader rule coverage. - Add `.oxlintrc.json` with React, TypeScript, unicorn, import plugins and correctness/suspicious categories - Add `.oxfmtrc.json` with 2-space indent, import sorting, and Tailwind class sorting (all 30+ custom className attributes migrated) - Add `docs/.oxlintrc.json` and `docs/.oxfmtrc.json` with Next.js plugin - Update all 12 workspace package.json scripts: `oxlint`, `oxfmt`, `oxfmt --check` - Add `format:check` turbo task and CI step - Update VS Code settings/extensions to use `oxc.oxc-vscode` - Update CI path triggers from `biome.json` to new config files - Remove all `biome-ignore` comments and fix shadowed variables - Delete `biome.json` and `docs/biome.json` - Reformat entire codebase with oxfmt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
68 lines
2.1 KiB
TypeScript
68 lines
2.1 KiB
TypeScript
import { beforeEach, describe, expect, test } from "bun:test";
|
|
|
|
import { clearAllTables, insertUser } from "@sofa/db/test-utils";
|
|
|
|
import { getSetting, getUserCount, isRegistrationOpen, setSetting } from "../src/settings";
|
|
|
|
beforeEach(() => {
|
|
clearAllTables();
|
|
});
|
|
|
|
// ── getSetting / setSetting ─────────────────────────────────────────
|
|
|
|
describe("getSetting / setSetting", () => {
|
|
test("returns null for missing key", () => {
|
|
expect(getSetting("nonexistent")).toBeNull();
|
|
});
|
|
|
|
test("stores and retrieves a value", () => {
|
|
setSetting("theme", "dark");
|
|
expect(getSetting("theme")).toBe("dark");
|
|
});
|
|
|
|
test("upserts: overwrites existing value", () => {
|
|
setSetting("theme", "dark");
|
|
setSetting("theme", "light");
|
|
expect(getSetting("theme")).toBe("light");
|
|
});
|
|
});
|
|
|
|
// ── getUserCount ────────────────────────────────────────────────────
|
|
|
|
describe("getUserCount", () => {
|
|
test("returns 0 when no users", () => {
|
|
expect(getUserCount()).toBe(0);
|
|
});
|
|
|
|
test("returns correct count", () => {
|
|
insertUser("user-1");
|
|
insertUser("user-2");
|
|
expect(getUserCount()).toBe(2);
|
|
});
|
|
});
|
|
|
|
// ── isRegistrationOpen ──────────────────────────────────────────────
|
|
|
|
describe("isRegistrationOpen", () => {
|
|
test("returns true when no users exist (first-run)", () => {
|
|
expect(isRegistrationOpen()).toBe(true);
|
|
});
|
|
|
|
test("returns false when users exist and setting is not set", () => {
|
|
insertUser();
|
|
expect(isRegistrationOpen()).toBe(false);
|
|
});
|
|
|
|
test("returns true when users exist and setting is 'true'", () => {
|
|
insertUser();
|
|
setSetting("registrationOpen", "true");
|
|
expect(isRegistrationOpen()).toBe(true);
|
|
});
|
|
|
|
test("returns false when users exist and setting is 'false'", () => {
|
|
insertUser();
|
|
setSetting("registrationOpen", "false");
|
|
expect(isRegistrationOpen()).toBe(false);
|
|
});
|
|
});
|