41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { render } from '@testing-library/svelte';
|
|
import { describe, test, expect } from 'vitest';
|
|
import { load } from '../src/routes/(angemeldet)/+layout.server';
|
|
import Homepage from '../src/routes/(angemeldet)/+page.svelte';
|
|
|
|
describe('Homepage-View', () => {
|
|
test('Zeige Inhalt an wenn der Nutzer angemeldet ist', () => {
|
|
const fakeUser = { id: 'admin' };
|
|
|
|
const { getByText } = render(Homepage, {
|
|
props: {
|
|
data: { user: fakeUser }
|
|
}
|
|
});
|
|
|
|
expect(getByText('Benutzerverwaltung')).toBeInTheDocument();
|
|
});
|
|
|
|
// [INFO] Benutzer (ohne Login) kann nicht auf diese Seite zugreifen
|
|
// entsprechender Test ist unten `Layout.Server Guard for Homepage-View`
|
|
});
|
|
|
|
describe('Layout.Server Guard fuer Homepage-View', () => {
|
|
test('Weiterleitung an /anmeldung wenn der Nutzer nicht authentifiziert ist', async () => {
|
|
const event = {
|
|
url: new URL('http://localhost'),
|
|
locals: {
|
|
user: null
|
|
}
|
|
};
|
|
|
|
try {
|
|
await load(event);
|
|
throw new Error('Expected redirect not thrown');
|
|
} catch (err) {
|
|
expect(err.status).toBe(303);
|
|
expect(err.location).toBe('/anmeldung');
|
|
}
|
|
});
|
|
});
|