d880c9d098
Results (https://macmini:3007): - sdk-module-reachability: 40/42 (loeschfristen+vvt pre-existing bugs) - vendor-transfers: 4/4 - isms-assets: 3/3 - document-generator: 3/4 (category label mismatch) Added: playwright-live.config.ts (no webServer, live instance testing) Test data NOT cleaned up — profiles persist for manual review. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
91 lines
2.1 KiB
TypeScript
91 lines
2.1 KiB
TypeScript
/**
|
|
* SDK Module Reachability Test
|
|
*
|
|
* Prueft dass alle SDK-Module erreichbar sind (kein 404, kein Crash).
|
|
* Schnellster Test — findet kaputte Seiten sofort.
|
|
*/
|
|
|
|
import { test, expect } from '@playwright/test'
|
|
|
|
const BASE = process.env.PLAYWRIGHT_BASE_URL || 'https://macmini:3007'
|
|
|
|
// All SDK module routes to test
|
|
const SDK_ROUTES = [
|
|
// Phase 1: Vorbereitung
|
|
'/sdk/company-profile',
|
|
'/sdk/compliance-scope',
|
|
'/sdk/advisory-board',
|
|
'/sdk/screening',
|
|
'/sdk/source-policy',
|
|
|
|
// Phase 2: Analyse
|
|
'/sdk/requirements',
|
|
'/sdk/controls',
|
|
'/sdk/evidence',
|
|
'/sdk/risks',
|
|
'/sdk/ai-act',
|
|
'/sdk/audit-checklist',
|
|
'/sdk/audit-report',
|
|
|
|
// Phase 3: Dokumentation
|
|
'/sdk/obligations',
|
|
'/sdk/dsfa',
|
|
'/sdk/tom',
|
|
'/sdk/loeschfristen',
|
|
'/sdk/vvt',
|
|
|
|
// Phase 4: Rechtliche Texte
|
|
'/sdk/einwilligungen',
|
|
'/sdk/consent',
|
|
'/sdk/cookie-banner',
|
|
'/sdk/document-generator',
|
|
'/sdk/workflow',
|
|
|
|
// Phase 5: Betrieb
|
|
'/sdk/dsr',
|
|
'/sdk/escalations',
|
|
'/sdk/vendor-compliance',
|
|
'/sdk/vendor-compliance/transfers',
|
|
'/sdk/consent-management',
|
|
'/sdk/email-templates',
|
|
'/sdk/notfallplan',
|
|
'/sdk/incidents',
|
|
'/sdk/whistleblower',
|
|
'/sdk/academy',
|
|
'/sdk/training',
|
|
'/sdk/control-library',
|
|
|
|
// Zusatzmodule
|
|
'/sdk/isms',
|
|
'/sdk/iace',
|
|
'/sdk/agent',
|
|
'/sdk/rag',
|
|
'/sdk/quality',
|
|
'/sdk/security-backlog',
|
|
'/sdk/reporting',
|
|
'/sdk/tom-generator',
|
|
]
|
|
|
|
test.describe('SDK Module Reachability', () => {
|
|
for (const route of SDK_ROUTES) {
|
|
test(`${route} is reachable`, async ({ page }) => {
|
|
const response = await page.goto(`${BASE}${route}`, {
|
|
waitUntil: 'domcontentloaded',
|
|
timeout: 15000,
|
|
})
|
|
|
|
// Page should load successfully (not 404 or 500)
|
|
expect(response?.status()).toBeLessThan(400)
|
|
|
|
// Wait for client-side hydration
|
|
await page.waitForTimeout(2000)
|
|
|
|
// Check no visible 404 page or application error (not RSC payload)
|
|
const has404Page = await page.locator('h1').filter({ hasText: '404' }).count()
|
|
const hasAppError = await page.getByText('Application error').count()
|
|
expect(has404Page).toBe(0)
|
|
expect(hasAppError).toBe(0)
|
|
})
|
|
}
|
|
})
|