49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
|
|
import { describe, it, expect, vi } from "vitest";
|
||
|
|
|
||
|
|
// Mock fetch so the backend store module doesn't make real requests
|
||
|
|
vi.stubGlobal(
|
||
|
|
"fetch",
|
||
|
|
vi.fn(() =>
|
||
|
|
Promise.resolve({
|
||
|
|
ok: true,
|
||
|
|
json: () => Promise.resolve({}),
|
||
|
|
})
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
// Mock WebSocket for the backend store dependency
|
||
|
|
class MockWebSocket {
|
||
|
|
onopen: ((ev: Event) => void) | null = null;
|
||
|
|
onclose: ((ev: CloseEvent) => void) | null = null;
|
||
|
|
onmessage: ((ev: MessageEvent) => void) | null = null;
|
||
|
|
onerror: ((ev: Event) => void) | null = null;
|
||
|
|
close = vi.fn();
|
||
|
|
}
|
||
|
|
vi.stubGlobal("WebSocket", MockWebSocket);
|
||
|
|
|
||
|
|
import { configStore } from "./config.svelte.ts";
|
||
|
|
|
||
|
|
describe("config store", () => {
|
||
|
|
it("test_has_fetchConfig_method", () => {
|
||
|
|
expect(typeof configStore.fetchConfig).toBe("function");
|
||
|
|
});
|
||
|
|
|
||
|
|
it("test_has_updateConfig_method", () => {
|
||
|
|
expect(typeof configStore.updateConfig).toBe("function");
|
||
|
|
});
|
||
|
|
|
||
|
|
it("test_config_defaults_have_expected_keys", () => {
|
||
|
|
const cfg = configStore.config;
|
||
|
|
expect(cfg).toHaveProperty("user");
|
||
|
|
expect(cfg).toHaveProperty("audio");
|
||
|
|
expect(cfg).toHaveProperty("transcription");
|
||
|
|
expect(cfg).toHaveProperty("display");
|
||
|
|
expect(cfg).toHaveProperty("remote");
|
||
|
|
expect(cfg).toHaveProperty("updates");
|
||
|
|
});
|
||
|
|
|
||
|
|
it("test_remote_config_has_byok_api_key", () => {
|
||
|
|
expect(configStore.config.remote.byok_api_key).toBeDefined();
|
||
|
|
});
|
||
|
|
});
|