Files
tolaria/src/utils/vault-dialog.test.ts
lucaronin 7c0111b53d test: add tests for local vault picker options
- StatusBar: 6 new tests for open local folder, create new vault options
- vault-dialog: 3 tests for pickFolder browser fallback behavior
- Rust lib: 3 tests for create_vault_dir (new dir, nested, existing)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:01:42 +01:00

41 lines
1.2 KiB
TypeScript

import { describe, it, expect, vi, beforeEach } from 'vitest'
// Mock isTauri — default to browser mode
vi.mock('../mock-tauri', () => ({
isTauri: vi.fn(() => false),
}))
import { pickFolder } from './vault-dialog'
import { isTauri } from '../mock-tauri'
describe('pickFolder', () => {
beforeEach(() => {
vi.restoreAllMocks()
})
it('returns user input from prompt in browser mode', async () => {
vi.mocked(isTauri).mockReturnValue(false)
vi.spyOn(window, 'prompt').mockReturnValue('/Users/test/my-vault')
const result = await pickFolder('Select vault')
expect(result).toBe('/Users/test/my-vault')
expect(window.prompt).toHaveBeenCalledWith('Select vault')
})
it('returns null when user cancels prompt in browser mode', async () => {
vi.mocked(isTauri).mockReturnValue(false)
vi.spyOn(window, 'prompt').mockReturnValue(null)
const result = await pickFolder('Select vault')
expect(result).toBeNull()
})
it('uses default title when none provided in browser mode', async () => {
vi.mocked(isTauri).mockReturnValue(false)
vi.spyOn(window, 'prompt').mockReturnValue('/some/path')
await pickFolder()
expect(window.prompt).toHaveBeenCalledWith('Enter folder path:')
})
})