Moves ~25 components, utils (search, filename, groupDocuments, documentStatusLabel, validateFile), bulkSelection store, and TranscriptionSection sub-component. Fixes broken relative imports. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
import { cleanup, render } from 'vitest-browser-svelte';
|
|
import { page } from 'vitest/browser';
|
|
import UploadSaveBar from './UploadSaveBar.svelte';
|
|
|
|
afterEach(cleanup);
|
|
|
|
describe('UploadSaveBar', () => {
|
|
it('shows plural label for multiple files', async () => {
|
|
render(UploadSaveBar, { fileCount: 5, onSave: vi.fn(), onDiscard: vi.fn() });
|
|
// "5 speichern →" or similar plural form
|
|
await expect.element(page.getByText(/5/)).toBeInTheDocument();
|
|
});
|
|
|
|
it('shows singular label for one file', async () => {
|
|
render(UploadSaveBar, { fileCount: 1, onSave: vi.fn(), onDiscard: vi.fn() });
|
|
// "Speichern →" singular form
|
|
await expect.element(page.getByText(/Speichern/i)).toBeInTheDocument();
|
|
});
|
|
|
|
it('progress bar is visible when chunkProgress is provided', async () => {
|
|
const { container } = render(UploadSaveBar, {
|
|
fileCount: 3,
|
|
chunkProgress: { done: 1, total: 3 },
|
|
onSave: vi.fn(),
|
|
onDiscard: vi.fn()
|
|
});
|
|
const progress = container.querySelector('progress');
|
|
expect(progress).not.toBeNull();
|
|
expect(progress?.getAttribute('value')).toBe('1');
|
|
expect(progress?.getAttribute('max')).toBe('3');
|
|
});
|
|
|
|
it('progress bar is not rendered when no chunkProgress', async () => {
|
|
const { container } = render(UploadSaveBar, {
|
|
fileCount: 2,
|
|
onSave: vi.fn(),
|
|
onDiscard: vi.fn()
|
|
});
|
|
const progress = container.querySelector('progress');
|
|
expect(progress).toBeNull();
|
|
});
|
|
|
|
it('discard link is rendered', async () => {
|
|
render(UploadSaveBar, { fileCount: 2, onSave: vi.fn(), onDiscard: vi.fn() });
|
|
await expect.element(page.getByText(/verwerfen/i)).toBeInTheDocument();
|
|
});
|
|
});
|