d3b43250b8
New E2E test specs: - sdk-module-reachability: Tests 40+ SDK routes for 404/crash - scope-profiling: Three customer profiles (Startup/KMU/Enterprise) with screenshots at each step — data NOT cleaned up - document-generator: Template library, categories, recommendations - vendor-transfers: Transfer tab, explanations, adequacy list - isms-assets: Asset register tab, form, CRUD All tests configured to run against https://macmini:3007 Screenshots saved to e2e/test-results/ for manual review Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
104 lines
3.6 KiB
TypeScript
104 lines
3.6 KiB
TypeScript
/**
|
|
* Scope Profiling Test — Three Customer Profiles
|
|
*
|
|
* Legt drei fiktive Kundenprofile an die NICHT geloescht werden:
|
|
* - TechStart GmbH (Startup, L1)
|
|
* - MittelstandHandel AG (KMU, L2)
|
|
* - FinanzKonzern SE (Enterprise, L4)
|
|
*
|
|
* WICHTIG: Testdaten werden NICHT aufgeraeumt (User will nachvollziehen).
|
|
*/
|
|
|
|
import { test, expect } from '@playwright/test'
|
|
|
|
const BASE = process.env.PLAYWRIGHT_BASE_URL || 'https://macmini:3007'
|
|
|
|
test.describe('Scope Profiling — Customer Profiles', () => {
|
|
test.describe.configure({ mode: 'serial' })
|
|
|
|
test('Szenario A: TechStart GmbH — Startup (L1)', async ({ page }) => {
|
|
// Navigate to company profile
|
|
await page.goto(`${BASE}/sdk/company-profile`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
// Take screenshot for documentation
|
|
await page.screenshot({ path: 'e2e/test-results/profile-techstart-start.png' })
|
|
|
|
// Navigate to compliance scope
|
|
await page.goto(`${BASE}/sdk/compliance-scope`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/scope-techstart.png' })
|
|
|
|
// Navigate to document generator to check recommendations
|
|
await page.goto(`${BASE}/sdk/document-generator`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/generator-techstart.png' })
|
|
|
|
// Verify page loads without errors
|
|
const body = await page.textContent('body')
|
|
expect(body).not.toContain('Application error')
|
|
})
|
|
|
|
test('Szenario B: MittelstandHandel AG — KMU (L2)', async ({ page }) => {
|
|
await page.goto(`${BASE}/sdk/company-profile`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/profile-mittelstand-start.png' })
|
|
|
|
await page.goto(`${BASE}/sdk/compliance-scope`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/scope-mittelstand.png' })
|
|
|
|
// Check vendor transfers tab
|
|
await page.goto(`${BASE}/sdk/vendor-compliance/transfers`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/transfers-mittelstand.png' })
|
|
|
|
// Check document generator
|
|
await page.goto(`${BASE}/sdk/document-generator`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/generator-mittelstand.png' })
|
|
|
|
const body = await page.textContent('body')
|
|
expect(body).not.toContain('Application error')
|
|
})
|
|
|
|
test('Szenario C: FinanzKonzern SE — Enterprise (L4)', async ({ page }) => {
|
|
await page.goto(`${BASE}/sdk/company-profile`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/profile-finanzkonzern-start.png' })
|
|
|
|
await page.goto(`${BASE}/sdk/compliance-scope`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/scope-finanzkonzern.png' })
|
|
|
|
// Check ISMS with assets
|
|
await page.goto(`${BASE}/sdk/isms`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/isms-finanzkonzern.png' })
|
|
|
|
// Check whistleblower (Pflicht ab 50 MA)
|
|
await page.goto(`${BASE}/sdk/whistleblower`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/whistleblower-finanzkonzern.png' })
|
|
|
|
// Check document generator
|
|
await page.goto(`${BASE}/sdk/document-generator`)
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
await page.screenshot({ path: 'e2e/test-results/generator-finanzkonzern.png' })
|
|
|
|
const body = await page.textContent('body')
|
|
expect(body).not.toContain('Application error')
|
|
})
|
|
})
|