Public source validation / validate (push) Failing after 3m8s
42 lines
1.9 KiB
TypeScript
42 lines
1.9 KiB
TypeScript
import { render, screen } from '@testing-library/react';
|
|
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
import { NetworkPage } from '../../src/NetworkPage';
|
|
|
|
afterEach(() => {
|
|
vi.unstubAllGlobals();
|
|
});
|
|
|
|
describe('NetworkPage API boundary', () => {
|
|
it('normalizes nullable PostgreSQL collections before rendering', async () => {
|
|
vi.stubGlobal('fetch', vi.fn().mockResolvedValue(new Response(JSON.stringify({
|
|
contractVersion: 'v1',
|
|
observedAt: '2026-08-10T04:41:55Z',
|
|
source: { id: 'agent', freshness: 'fresh', observedAt: '2026-08-10T04:41:55Z', state: 'unknown' },
|
|
health: null,
|
|
interfaces: null,
|
|
certificates: null,
|
|
events: null,
|
|
}), { status: 200, headers: { 'Content-Type': 'application/json' } })));
|
|
|
|
render(<NetworkPage />);
|
|
|
|
expect(await screen.findByRole('heading', { level: 1, name: 'Netwerk' })).toBeVisible();
|
|
expect(screen.getByText('Geen betrouwbare interfacegegevens beschikbaar.')).toBeVisible();
|
|
});
|
|
|
|
it('distinguishes an unconfigured DNS signal from generic unknown', async () => {
|
|
vi.stubGlobal('fetch', vi.fn().mockResolvedValue(new Response(JSON.stringify({
|
|
contractVersion: 'v1', observedAt: '2026-08-10T04:41:55Z',
|
|
source: { id: 'network-aggregate', freshness: 'unknown', observedAt: '2026-08-10T04:41:55Z', state: 'unknown' },
|
|
health: [{ scope: 'dns', state: 'unknown', capabilityState: 'available', configurationState: 'not_configured', reason: 'not_configured', freshness: 'unavailable', observedAt: '2026-08-10T04:41:55Z' }],
|
|
interfaces: [], certificates: [], events: [],
|
|
}), { status: 200, headers: { 'Content-Type': 'application/json' } })));
|
|
|
|
render(<NetworkPage />);
|
|
|
|
expect(await screen.findByText('Niet geconfigureerd')).toBeVisible();
|
|
expect(screen.getByText('Voor dit signaal is nog geen veilige probe geconfigureerd.')).toBeVisible();
|
|
});
|
|
});
|