feat: add appMode preference (clipper/player) with persistence

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-22 19:00:34 -04:00
parent 8bcec23d8c
commit bd96da4dc9
2 changed files with 48 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
import { describe, it, expect, vi, beforeEach } from 'vitest';
// Mock the Tauri store before importing the module under test
vi.mock('@tauri-apps/plugin-store', () => {
const mockStore = {
get: vi.fn().mockResolvedValue(null),
set: vi.fn().mockResolvedValue(undefined),
save: vi.fn().mockResolvedValue(undefined),
};
return {
load: vi.fn().mockResolvedValue(mockStore),
Store: vi.fn(),
};
});
describe('preferences store — appMode', () => {
beforeEach(() => {
vi.resetModules();
});
it('defaults appMode to clipper', async () => {
const { preferences } = await import('$lib/stores/preferences.svelte');
expect(preferences.appMode).toBe('clipper');
});
it('setAppMode updates appMode to player', async () => {
const { preferences, setAppMode } = await import('$lib/stores/preferences.svelte');
await setAppMode('player');
expect(preferences.appMode).toBe('player');
});
it('setAppMode updates appMode back to clipper', async () => {
const { preferences, setAppMode } = await import('$lib/stores/preferences.svelte');
await setAppMode('player');
await setAppMode('clipper');
expect(preferences.appMode).toBe('clipper');
});
});