@flusterduck/test-suite
v0.7.10
Published
Playwright-based frustration simulation test suite
Downloads
418
Readme
@flusterduck/test-suite
Playwright-based frustration simulation CLI. Programmatically triggers the behavioral patterns that Flusterduck detects so you can verify your SDK integration, test alert thresholds, and regression-test scoring pipelines.
Installation
npm install --save-dev @flusterduck/test-suiteRequires playwright to be installed and browsers configured (npx playwright install).
CLI usage
npx flusterduck-test run --url https://your-app.com --key fd_pub_...Runs the full simulation suite against the given URL and reports signal counts detected by the SDK.
Programmatic usage
import {
runAllSimulations,
simulateRageClicks,
simulateDeadClicks,
simulateFormHesitation,
simulateFormAbandonment,
simulateLoopNavigation,
} from '@flusterduck/test-suite';
// Run every simulation in sequence
const results = await runAllSimulations({
url: 'https://your-app.com',
apiKey: 'fd_pub_...',
headless: true,
});
// Or run individual simulations
const rageResult = await simulateRageClicks({
url: 'https://your-app.com/checkout',
selector: '#pay-btn',
clickCount: 5,
});Available simulations
| Function | Triggers |
|---|---|
| simulateRageClicks | 3+ rapid clicks on one target |
| simulateDeadClicks | Clicks on unresponsive elements |
| simulateThrashCursor | Erratic mouse movement |
| simulateFormHesitation | Long pause in a form field |
| simulateFormAbandonment | Interact then leave without submitting |
| simulateLoopNavigation | Visit same page 3+ times |
| simulateScrollBounce | Scroll to bottom then back immediately |
| simulateTabThrash | Rapid Tab key use |
| simulateMobileTapMiss | Touch on non-interactive area |
| simulatePinchZoom | Pinch gesture on non-zoomable content |
| simulateSwipe | Failed swipe gesture |
Result format
interface SimulationResult {
simulation: string;
triggered: boolean;
signalsSent: number;
durationMs: number;
error?: string;
}