implement tests TatortList.view, check delete/edit Item

This commit is contained in:
2025-09-09 18:25:04 +02:00
parent 650cfd0061
commit 8803187ce1
8 changed files with 167 additions and 180 deletions

View File

@@ -1,58 +1,11 @@
import { render, screen, within } from '@testing-library/svelte';
import { describe, expect, it, test } from "vitest";
import TatortListPage from "../src/routes/(token-based)/list/[vorgang]/+page.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" ]
}
import { baseData } from './fixtures';
describe('Seite: Vorgangsansicht', () => {
test.todo('zeigt PIN und Share-Link, wenn Admin');
test.todo('zeigt PIN und Share-Link disabeld, wenn Liste leer')
describe('Szenario: Liste leer (unabhängig von Rolle)', () => {
it('zeigt Hinweistext bei leerer Liste', () => {
@@ -105,17 +58,28 @@ describe('Seite: Vorgangsansicht', () => {
});
describe('Szenario: Admin + Liste gefüllt', () => {
it('zeigt PIN und Share-Link disabeld, wenn Liste leer', () => { });
it('zeigt PIN und Share-Link disabeld=false', () => { });
it('zeigt Listeneinträge mit Edit/Delete', () => { });
it('gibt Edit/Delete-Events korrekt weiter', () => { });
});
const testData = { ...baseData, user: { ...baseData.user, admin: true }};
it('zeigt Listeneinträge mit Komponente NameItemEditor', () => {
const { getAllByTestId } = render(TatortListPage, {props:{data: testData}});
const items = getAllByTestId('test-nameItemEditor');
expect(items.length).toBeGreaterThan(0);
});
});
describe('Szenario: Viewer + Liste gefüllt', () => {
it('zeigt Listeneinträge ohne Edit/Delete', () => { });
it('zeigt Link und Änderungsdatum', () => { });
it('zeigt keinen Share-Link oder PIN', () => { });
});
const testData = { ...baseData, user: { ...baseData.user, admin: false }};
it('zeigt Listeneinträge mit p', () => {
render(TatortListPage, { props: { data: testData } });
const paragraphs = screen.queryAllByTestId('test-nameItem-p');
test.todo('Modal testen, wenn open')
expect(paragraphs).toHaveLength(testData.crimesList.length);
paragraphs.forEach((p, i) => {
expect(p).toHaveTextContent(testData.crimesList[i].name);
});
});
test.todo('zeigt keinen Share-Link oder PIN')
test.todo('Modal testen, wenn open')
});
});