Skip to content
Latest stable: v0.8.0.

Diagnose No Chaos

Turn on debug: true, collect the log, then read applied: false entries. A disabled group produces both rule-group:gated and a debug rule-skip-group stage.

import { test, expect } from '@playwright/test';
import { getChaosLog, injectChaos } from '@chaos-maker/playwright';
test('explains a disabled payment group', async ({ page }) => {
await injectChaos(page, {
debug: true,
groups: [{ name: 'payments', enabled: false }],
network: {
failures: [{ urlPattern: '/api/payments', statusCode: 503, probability: 1, group: 'payments' }],
},
});
await page.goto('/checkout');
await page.click('#pay-now');
const misses = (await getChaosLog(page)).filter((event) => event.applied === false);
expect(misses.some((event) => event.type === 'rule-group:gated' && event.detail.groupName === 'payments')).toBe(true);
expect(misses.some((event) => event.type === 'debug' && event.detail.stage === 'rule-skip-group')).toBe(true);
});