72 lines
2.0 KiB
TypeScript
72 lines
2.0 KiB
TypeScript
|
|
import { describe, it, expect, vi, beforeEach } from "vitest";
|
||
|
|
|
||
|
|
// Mock WebSocket for the backend store dependency (loaded transitively)
|
||
|
|
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);
|
||
|
|
|
||
|
|
vi.stubGlobal(
|
||
|
|
"fetch",
|
||
|
|
vi.fn(() =>
|
||
|
|
Promise.resolve({
|
||
|
|
ok: true,
|
||
|
|
json: () => Promise.resolve({}),
|
||
|
|
})
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
import { transcriptionStore } from "./transcriptions.svelte.ts";
|
||
|
|
|
||
|
|
describe("transcriptions store", () => {
|
||
|
|
beforeEach(() => {
|
||
|
|
transcriptionStore.clearAll();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("test_addTranscription", () => {
|
||
|
|
transcriptionStore.addTranscription({
|
||
|
|
text: "Hello world",
|
||
|
|
user_name: "TestUser",
|
||
|
|
timestamp: "12:00:00",
|
||
|
|
});
|
||
|
|
|
||
|
|
expect(transcriptionStore.items.length).toBe(1);
|
||
|
|
expect(transcriptionStore.items[0].text).toBe("Hello world");
|
||
|
|
expect(transcriptionStore.items[0].userName).toBe("TestUser");
|
||
|
|
expect(transcriptionStore.items[0].timestamp).toBe("12:00:00");
|
||
|
|
expect(transcriptionStore.items[0].isPreview).toBe(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("test_clearAll", () => {
|
||
|
|
transcriptionStore.addTranscription({ text: "One" });
|
||
|
|
transcriptionStore.addTranscription({ text: "Two" });
|
||
|
|
expect(transcriptionStore.items.length).toBe(2);
|
||
|
|
|
||
|
|
transcriptionStore.clearAll();
|
||
|
|
expect(transcriptionStore.items.length).toBe(0);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("test_getPlainText", () => {
|
||
|
|
transcriptionStore.addTranscription({
|
||
|
|
text: "Hello",
|
||
|
|
user_name: "Alice",
|
||
|
|
timestamp: "10:00",
|
||
|
|
});
|
||
|
|
transcriptionStore.addTranscription({
|
||
|
|
text: "World",
|
||
|
|
user_name: "Bob",
|
||
|
|
timestamp: "10:01",
|
||
|
|
});
|
||
|
|
|
||
|
|
const text = transcriptionStore.getPlainText();
|
||
|
|
expect(text).toContain("[10:00] Alice: Hello");
|
||
|
|
expect(text).toContain("[10:01] Bob: World");
|
||
|
|
// Lines separated by newline
|
||
|
|
expect(text.split("\n").length).toBe(2);
|
||
|
|
});
|
||
|
|
});
|