MAESTRO: add E2E test infrastructure and Auto Run setup wizard E2E test (Task 6.1)

- Install Playwright dependencies (@playwright/test, electron-playwright-helpers)
- Create playwright.config.ts for Electron E2E testing
- Add e2e/fixtures/electron-app.ts with Electron launch fixtures and helpers
- Create e2e/autorun-setup.spec.ts with 24 tests (13 active, 11 skipped pending dialog mocking):
  - Wizard Launch: keyboard shortcut, agent selection screen, Escape to close
  - Agent Selection Screen: Claude Code display, other agents, project name, keyboard navigation
  - Directory Selection Screen: (skipped - requires dialog mocking)
  - Document Creation Flow: (skipped - requires full wizard flow)
  - Wizard Navigation: step indicators, button states, Back navigation
  - Exit Confirmation: (skipped - requires dialog mocking)
  - Accessibility: keyboard-only navigation, focus management
- Add npm scripts: test:e2e, test:e2e:ui, test:e2e:headed
- Update .gitignore with e2e-results/, playwright-report/, test-results/
This commit is contained in:
Pedram Amini
2025-12-14 05:01:19 -06:00
parent 5448613253
commit 71c2d0dafe
6 changed files with 756 additions and 4 deletions

80
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "maestro",
"version": "0.8.1",
"version": "0.8.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "maestro",
"version": "0.8.1",
"version": "0.8.3",
"hasInstallScript": true,
"license": "AGPL 3.0",
"dependencies": {
@@ -45,6 +45,7 @@
},
"devDependencies": {
"@electron/notarize": "^3.1.1",
"@playwright/test": "^1.57.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@types/adm-zip": "^0.5.7",
@@ -63,10 +64,12 @@
"concurrently": "^8.2.2",
"electron": "^28.1.0",
"electron-builder": "^24.9.1",
"electron-playwright-helpers": "^2.0.1",
"electron-rebuild": "^3.2.9",
"esbuild": "^0.24.2",
"jsdom": "^27.2.0",
"lucide-react": "^0.303.0",
"playwright": "^1.57.0",
"postcss": "^8.4.33",
"react": "^18.2.0",
"react-dom": "^18.2.0",
@@ -1948,6 +1951,22 @@
"node": ">=14"
}
},
"node_modules/@playwright/test": {
"version": "1.57.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz",
"integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright": "1.57.0"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.27",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
@@ -6506,6 +6525,16 @@
"node": ">= 10.0.0"
}
},
"node_modules/electron-playwright-helpers": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/electron-playwright-helpers/-/electron-playwright-helpers-2.0.1.tgz",
"integrity": "sha512-gnPi63Pyuli4hfRfgIFk6v0PGGQImIRaob9dcBoUaz5B6wFfQklJyqMZY3NzpP6p2/7ZWd7VFI0nMhvGB/biog==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron/asar": "^3.2.4"
}
},
"node_modules/electron-publish": {
"version": "24.13.1",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.13.1.tgz",
@@ -11216,6 +11245,53 @@
"node": ">=8"
}
},
"node_modules/playwright": {
"version": "1.57.0",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz",
"integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright-core": "1.57.0"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"fsevents": "2.3.2"
}
},
"node_modules/playwright-core": {
"version": "1.57.0",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz",
"integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
"engines": {
"node": ">=18"
}
},
"node_modules/playwright/node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/plist": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",