feat(stability): unify readiness and recovery
CI - Build & Test / Backend (.NET) (push) Successful in 45s
CI - Build & Test / Backend integration (PostgreSQL/Toxiproxy) (push) Failing after 1m0s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m49s
CI - Build & Test / Security Check (push) Successful in 7s
CI - Build & Test / Deploy Nexus (push) Has been skipped
CI - Build & Test / Backend (.NET) (push) Successful in 45s
CI - Build & Test / Backend integration (PostgreSQL/Toxiproxy) (push) Failing after 1m0s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m49s
CI - Build & Test / Security Check (push) Successful in 7s
CI - Build & Test / Deploy Nexus (push) Has been skipped
This commit is contained in:
@@ -131,6 +131,33 @@ test.describe('authenticated route and deep-link smoke', () => {
|
||||
})).toBeVisible()
|
||||
|
||||
await expect.poll(() => api.openClawOverviewRequestCount).toBe(1)
|
||||
expect(api.browserTelemetryRequestCount).toBe(0)
|
||||
})
|
||||
|
||||
test('distinguishes a dependency outage and recovers without hiding the route', async ({ page }, testInfo) => {
|
||||
await mockNexusApi(page, {
|
||||
role: 'owner',
|
||||
apiFailure: {
|
||||
path: '/api/v1/projects',
|
||||
status: 503,
|
||||
// Vue Query performs two bounded retries for safe reads. The visible
|
||||
// recovery action is the next, explicit request.
|
||||
attempts: 3,
|
||||
},
|
||||
})
|
||||
|
||||
await page.goto('/projects')
|
||||
const recovery = page.locator('[data-state="offline"][data-problem-kind="offline"]')
|
||||
await expect(recovery).toBeVisible()
|
||||
await expect(recovery).toContainText('Abhängigkeit nicht erreichbar')
|
||||
await page.screenshot({
|
||||
path: testInfo.outputPath('dependency-recovery.png'),
|
||||
fullPage: true,
|
||||
})
|
||||
await recovery.getByRole('button', { name: 'Erneut prüfen' }).click()
|
||||
|
||||
await expect(page.getByRole('link', { name: /Release Readiness/ })).toBeVisible()
|
||||
await expect(recovery).toHaveCount(0)
|
||||
})
|
||||
|
||||
test('keeps Iris and run mutation entry points unavailable to non-owners', async ({ page }) => {
|
||||
|
||||
Reference in New Issue
Block a user