diff --git a/src/routes/(token-based)/list/[vorgang]/+page.svelte b/src/routes/(token-based)/list/[vorgang]/+page.svelte index 29b4cce..84adfba 100644 --- a/src/routes/(token-based)/list/[vorgang]/+page.svelte +++ b/src/routes/(token-based)/list/[vorgang]/+page.svelte @@ -194,7 +194,7 @@ open = true; inProgress = true; isError = false; - let path = API_ROUTES.CRIME(vorgangToken, tatort); + let path = API_ROUTES.CRIME(vorgangToken, tatort) try { const res = await fetch(path, { @@ -267,9 +267,9 @@ Mit freundlichen Grüßen,
diff --git a/tests/views/TatortList.test.ts b/tests/views/TatortList.test.ts index 8e17f7c..d800622 100644 --- a/tests/views/TatortList.test.ts +++ b/tests/views/TatortList.test.ts @@ -9,6 +9,21 @@ import { API_ROUTES } from '../../src/routes'; vi.spyOn(nav, 'invalidateAll').mockResolvedValue(); global.fetch = vi.fn().mockResolvedValue({ ok: true }); +async function clickPlusButton() { + // mock animation features of the browser + + window.HTMLElement.prototype.scrollIntoView = vi.fn(); + window.HTMLElement.prototype.animate = vi.fn(() => ({ + finished: Promise.resolve(), + cancel: vi.fn(), + })) + + // button is visible + const button = screen.getByRole('button', { name: /add item/i }) + expect(button).toBeInTheDocument(); + + await fireEvent.click(button) +} describe('Seite: Vorgangsansicht', () => { test.todo('Share Link disabled wenn Liste leer'); @@ -83,3 +98,42 @@ describe('Seite: Vorgangsansicht', () => { }); }); }); + + +describe('Hinzufügen Button', () => { + it('Unexpandierter Button', () => { + const testData = { ...baseData, vorgangList: [] }; + const { getByTestId } = render(TatortListPage, { props: { data: testData } }); + + const container = getByTestId('expand-container') + expect(container).toBeInTheDocument(); + + // button is visible + const button = within(container).getByRole('button') + expect(button).toBeInTheDocument(); + + // input fields are not visible + let label = screen.queryByText('Modellname'); + expect(label).not.toBeInTheDocument(); + }); + + it('Expandierter Button nach Klick', async () => { + + const testData = { ...baseData, vorgangList: [] }; + render(TatortListPage, { props: { data: testData } }); + + await clickPlusButton(); + + // input fields are visible + let label = screen.queryByText('Modellname'); + expect(label).toBeInTheDocument(); + }); + + it.todo('Check Validation: missing name', async () => { + console.log(`test: input field validation`); + }); + + it.todo('Create Tatort successful', async () => { + console.log(`test: tatort upload`); + }); +}); \ No newline at end of file