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