Skip to content

Degraded UI Buttons

Disable a critical button and assert that the page exposes an alternate path or an actionable message.

await injectChaos(page, {});
await page.goto('/settings');
await page.evaluate((config) => (window as any).chaosUtils.start(config), {
seed: 42,
ui: { assaults: [{ selector: 'button.save', action: 'disable', probability: 1 }] },
});
await expect(page.locator('button.save')).toBeDisabled();
await expect(page.locator('[data-testid="autosave-state"]')).toBeVisible();
expect((await getChaosLog(page)).some((event) => event.type === 'ui:assault' && event.applied)).toBe(true);