46 lines
1.9 KiB
TypeScript
46 lines
1.9 KiB
TypeScript
import { render, screen, within } from '@testing-library/svelte';
|
|
import { describe, expect, it } from 'vitest';
|
|
import VorgangListPage from '$root/routes/(angemeldet)/list/+page.svelte';
|
|
import { baseData } from '../fixtures';
|
|
import { ROUTE_NAMES } from '../../src/routes';
|
|
|
|
describe('Vorgänge Liste Page EmptyList-Komponente View', () => {
|
|
it('zeigt EmptyList-Komponente an, wenn Liste leer ist', () => {
|
|
const testData = { ...baseData, vorgangList: [] };
|
|
const { getByTestId } = render(VorgangListPage, { props: { data: testData } });
|
|
|
|
expect(getByTestId('empty-list')).toBeInTheDocument();
|
|
});
|
|
|
|
it('zeigt Liste(mockData 2 Elemente) an, wenn Liste vorhanden ist', () => {
|
|
const testData = { ...baseData };
|
|
const { getAllByTestId } = render(VorgangListPage, { props: { data: testData } });
|
|
const items = getAllByTestId('test-list-item');
|
|
|
|
expect(items.length).toBeGreaterThan(0);
|
|
});
|
|
});
|
|
|
|
describe('Teste Links auf Korrektheit', () => {
|
|
it('Überprüfe Links', () => {
|
|
const vorgListOneItem = baseData.vorgangList.slice(0, 1);
|
|
const vorgObj = vorgListOneItem[0];
|
|
const expectedURL = ROUTE_NAMES.VORGANG(vorgObj.vorgangToken, vorgObj.vorgangPIN)
|
|
|
|
render(VorgangListPage, { props: { data: { ...baseData, vorgangList: vorgListOneItem } } });
|
|
const listItem = screen.getByTestId("test-list-item");
|
|
const linkElement = within(listItem).getByRole('link');
|
|
expect(linkElement).toBeInTheDocument();
|
|
expect(linkElement).toHaveAttribute('href', expectedURL);
|
|
});
|
|
|
|
it('Links enthalten keinen VorgangsPIN', () => {
|
|
const vorgListOneItem = baseData.vorgangList.slice(0, 1)
|
|
|
|
render(VorgangListPage, { props: { data: { ...baseData, vorgangList: vorgListOneItem } } });
|
|
const listItem = screen.getByTestId("test-list-item");
|
|
const linkElement = within(listItem).getByRole('link');
|
|
expect(linkElement.getAttribute('href')?.toLowerCase()).not.toContain('pin');
|
|
});
|
|
});
|