diff --git a/src/lib/components/NameItemEditor.svelte b/src/lib/components/NameItemEditor.svelte index 4a1bddf..8a1d299 100644 --- a/src/lib/components/NameItemEditor.svelte +++ b/src/lib/components/NameItemEditor.svelte @@ -1,6 +1,8 @@
{ + isEditing = true; + }} onblur={commitIfValid} onkeydown={handleKeydown} /> - - + {#if isEditing} + + + {:else} + + + {/if} {#if error} -

{error}

+

{error}

{/if}
diff --git a/tests/ComponentNameItemEditor.view.test.ts b/tests/ComponentNameItemEditor.view.test.ts new file mode 100644 index 0000000..873cd6e --- /dev/null +++ b/tests/ComponentNameItemEditor.view.test.ts @@ -0,0 +1,84 @@ +import { fireEvent, render } from '@testing-library/svelte'; +import { describe, expect, it, vi } from "vitest"; +import NameItemEditor from '$lib/components/NameItemEditor.svelte'; + +const testUser = { + admin: true, +exp: 1757067123, +iat: 1757063523, +id: "admin", +} +const testCrimesList = [ + { + name: 'model-A', + lastModified: '2025-08-28T09:44:12.453Z', + etag: '558f35716f6af953f9bb5d75f6d77e6a', + size: 8947140, + prefix: '7596e4d5-c51f-482d-a4aa-ff76434305fc', + show_button: true + }, + { + name: 'model-z', + lastModified: '2025-08-28T10:37:20.142Z', + etag: '43e3989c32c4682bee407baaf83b6fa0', + size: 35788560, + prefix: '7596e4d5-c51f-482d-a4aa-ff76434305fc', + show_button: true + } + ]; + +const testVorgangsList = [ + { +vorgangName: "vorgang-1", +vorgangPIN: "pin-123", +vorgangToken: "c322f26f-8c5e-4cb9-94b3-b5433bf5109e" + }, + { +vorgangName: "vorgang-2", +vorgangPIN: "pin-2", +vorgangToken: "cb0051bc-5f38-47b8-943c-9352d4d9c984" + } + +] + +const baseData = { + user: testUser, + vorgang: testVorgangsList[0], + vorgangList: testVorgangsList, + crimesList: testCrimesList, + url: URL, + crimeNames: [ "modell-A" ], +} + +const testCrimesListIndex = 0; +const testItem = baseData.crimesList[testCrimesListIndex]; + const editedName = baseData.crimeNames[testCrimesListIndex]; + const currentName = testItem.name; + const onSave = vi.fn(); + const onDelete = vi.fn(); + +describe('Button-Anzeige mit Icons', () => { + const baseProps = {list: baseData.crimesList, editedName, currentName, onDelete, onSave} + it('zeigt Edit/Delete Buttons initial', () => { + const { getByTestId, queryByTestId } = render(NameItemEditor, { + props: baseProps + + }); + + expect(getByTestId('edit-button')).toBeInTheDocument(); + expect(getByTestId('delete-button')).toBeInTheDocument(); + expect(queryByTestId('commit-button')).toBeNull(); + expect(queryByTestId('cancel-button')).toBeNull(); + }); + + it('zeigt Commit/Cancel Buttons nach Klick auf Edit', async () => { + const { getByTestId } = render(NameItemEditor, { + props: baseProps + }); + + await fireEvent.click(getByTestId('edit-button')); + + expect(getByTestId('commit-button')).toBeInTheDocument(); + expect(getByTestId('cancel-button')).toBeInTheDocument(); + }); +}); diff --git a/tests/TatortList.view.test.ts b/tests/TatortList.view.test.ts index 61dd68c..c8816c9 100644 --- a/tests/TatortList.view.test.ts +++ b/tests/TatortList.view.test.ts @@ -69,3 +69,5 @@ const items = getAllByTestId('test-list-item'); expect(items).toHaveLength(2); }); }) + +