Add Landing Page View tests, admin and viewer access
This commit is contained in:
40
tests/Views.test.ts
Normal file
40
tests/Views.test.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
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');
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user