harb/scripts/harb-evaluator/holdout.config.ts
openhands f6fe37dcc0 fix: address PR #438 review findings
- Fix HOLDOUT_SCENARIOS_DIR to use absolute path (resolves Playwright testDir issue)
- Remove dead SCENARIOS_DIR variable
- Replace fallback with explicit error in holdout.config.ts
- Add SSH key requirement comment
2026-03-04 08:20:11 +00:00

54 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineConfig, devices } from '@playwright/test';
/**
* Playwright config for holdout scenarios.
*
* Holdout specs are cloned from the separate harb-holdout-scenarios repo
* into .holdout-scenarios/ by evaluate.sh and reuse the existing tests/setup/
* infrastructure (wallet-provider, stack, navigate).
*
* The evaluator boots the stack first, then runs:
* npx playwright test --config scripts/harb-evaluator/holdout.config.ts
*
* Required env vars (set by evaluate.sh):
* STACK_RPC_URL Anvil JSON-RPC endpoint
* STACK_WEBAPP_URL Vite dev server URL
* STACK_GRAPHQL_URL Ponder GraphQL endpoint
* HOLDOUT_SCENARIOS_DIR Path to cloned scenarios
*/
const scenariosDir = process.env.HOLDOUT_SCENARIOS_DIR;
if (!scenariosDir) {
throw new Error('HOLDOUT_SCENARIOS_DIR env var required — run via evaluate.sh');
}
export default defineConfig({
testDir: scenariosDir,
fullyParallel: false,
// evaluate.sh sets CI=true before invoking playwright, so forbidOnly is always
// active in the evaluator context. Accidental test.only() in any scenario file
// causes an immediate failure rather than a silent partial run.
forbidOnly: !!process.env.CI,
retries: 0,
workers: 1,
reporter: 'list',
timeout: 5 * 60 * 1000, // 5 min per test — scenarios involve on-chain txns
expect: {
timeout: 30_000,
},
use: {
headless: true,
viewport: { width: 1280, height: 720 },
screen: { width: 1280, height: 720 },
actionTimeout: 60_000,
launchOptions: {
args: ['--disable-dev-shm-usage', '--no-sandbox'],
},
},
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
],
});