mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-19 22:53:08 +00:00
* Changes from feature/worktree-view-customization * Feature: Git sync, set-tracking, and push divergence handling (#796) * Add quick-add feature with improved workflows (#802) * Changes from feature/quick-add * feat: Clarify system prompt and improve error handling across services. Address PR Feedback * feat: Improve PR description parsing and refactor event handling * feat: Add context options to pipeline orchestrator initialization * fix: Deduplicate React and handle CJS interop for use-sync-external-store Resolve "Cannot read properties of null (reading 'useState')" errors by deduplicating React/react-dom and ensuring use-sync-external-store is bundled together with React to prevent CJS packages from resolving to different React instances. * Changes from feature/worktree-view-customization * refactor: Remove unused worktree swap and highlight props * refactor: Consolidate feature completion logic and improve thinking level defaults * feat: Increase max turn limit to 10000 - Update DEFAULT_MAX_TURNS from 1000 to 10000 in settings-helpers.ts and agent-executor.ts - Update MAX_ALLOWED_TURNS from 2000 to 10000 in settings-helpers.ts - Update UI clamping logic from 2000 to 10000 in app-store.ts - Update fallback values from 1000 to 10000 in use-settings-sync.ts - Update default value from 1000 to 10000 in DEFAULT_GLOBAL_SETTINGS - Update documentation to reflect new range: 1-10000 Allows agents to perform up to 10000 turns for complex feature execution. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat: Add model resolution, improve session handling, and enhance UI stability * refactor: Remove unused sync and tracking branch props from worktree components * feat: Add PR number update functionality to worktrees. Address pr feedback * feat: Optimize Gemini CLI startup and add tool result tracking * refactor: Improve error handling and simplify worktree task cleanup --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
81 lines
3.0 KiB
TypeScript
81 lines
3.0 KiB
TypeScript
import { defineConfig, devices } from '@playwright/test';
|
|
|
|
const port = process.env.TEST_PORT || 3007;
|
|
const serverPort = process.env.TEST_SERVER_PORT || 3008;
|
|
const reuseServer = process.env.TEST_REUSE_SERVER === 'true';
|
|
const useExternalBackend = !!process.env.VITE_SERVER_URL;
|
|
// Always use mock agent for tests (disables rate limiting, uses mock Claude responses)
|
|
const mockAgent = true;
|
|
|
|
export default defineConfig({
|
|
testDir: './tests',
|
|
fullyParallel: true,
|
|
forbidOnly: !!process.env.CI,
|
|
retries: 0,
|
|
workers: 1, // Run sequentially to avoid auth conflicts with shared server
|
|
reporter: 'html',
|
|
timeout: 30000,
|
|
use: {
|
|
baseURL: `http://localhost:${port}`,
|
|
trace: 'on-failure',
|
|
screenshot: 'only-on-failure',
|
|
serviceWorkers: 'block',
|
|
},
|
|
// Global setup - authenticate before each test
|
|
globalSetup: require.resolve('./tests/global-setup.ts'),
|
|
projects: [
|
|
{
|
|
name: 'chromium',
|
|
use: { ...devices['Desktop Chrome'] },
|
|
},
|
|
],
|
|
...(reuseServer
|
|
? {}
|
|
: {
|
|
webServer: [
|
|
// Backend server - runs with mock agent enabled in CI
|
|
// Uses dev:test (no file watching) to avoid port conflicts from server restarts
|
|
...(useExternalBackend
|
|
? []
|
|
: [
|
|
{
|
|
command: `cd ../server && npm run dev:test`,
|
|
url: `http://localhost:${serverPort}/api/health`,
|
|
// Don't reuse existing server to ensure we use the test API key
|
|
reuseExistingServer: false,
|
|
timeout: 60000,
|
|
env: {
|
|
...process.env,
|
|
PORT: String(serverPort),
|
|
// Enable mock agent in CI to avoid real API calls
|
|
AUTOMAKER_MOCK_AGENT: mockAgent ? 'true' : 'false',
|
|
// Set a test API key for web mode authentication
|
|
AUTOMAKER_API_KEY:
|
|
process.env.AUTOMAKER_API_KEY || 'test-api-key-for-e2e-tests',
|
|
// Hide the API key banner to reduce log noise
|
|
AUTOMAKER_HIDE_API_KEY: 'true',
|
|
// Explicitly unset ALLOWED_ROOT_DIRECTORY to allow all paths for testing
|
|
// (prevents inheriting /projects from Docker or other environments)
|
|
ALLOWED_ROOT_DIRECTORY: '',
|
|
// Simulate containerized environment to skip sandbox confirmation dialogs
|
|
IS_CONTAINERIZED: 'true',
|
|
},
|
|
},
|
|
]),
|
|
// Frontend Vite dev server
|
|
{
|
|
command: `npm run dev`,
|
|
url: `http://localhost:${port}`,
|
|
reuseExistingServer: false,
|
|
timeout: 120000,
|
|
env: {
|
|
...process.env,
|
|
VITE_SKIP_SETUP: 'true',
|
|
// Always skip electron plugin during tests - prevents duplicate server spawning
|
|
VITE_SKIP_ELECTRON: 'true',
|
|
},
|
|
},
|
|
],
|
|
}),
|
|
});
|