mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
- Added `authenticateForTests` utility to streamline API key authentication in tests, using a fallback for local testing. - Updated context image test to include authentication step before navigation, ensuring proper session handling. - Increased timeout for context view visibility to accommodate slower server responses. - Introduced a test API key in the Playwright configuration for consistent testing environments.
63 lines
2.0 KiB
TypeScript
63 lines
2.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 mockAgent = process.env.CI === 'true' || process.env.AUTOMAKER_MOCK_AGENT === 'true';
|
|
|
|
export default defineConfig({
|
|
testDir: './tests',
|
|
fullyParallel: true,
|
|
forbidOnly: !!process.env.CI,
|
|
retries: process.env.CI ? 2 : 0,
|
|
workers: undefined,
|
|
reporter: 'html',
|
|
timeout: 30000,
|
|
use: {
|
|
baseURL: `http://localhost:${port}`,
|
|
trace: 'on-first-retry',
|
|
screenshot: 'only-on-failure',
|
|
},
|
|
projects: [
|
|
{
|
|
name: 'chromium',
|
|
use: { ...devices['Desktop Chrome'] },
|
|
},
|
|
],
|
|
...(reuseServer
|
|
? {}
|
|
: {
|
|
webServer: [
|
|
// Backend server - runs with mock agent enabled in CI
|
|
{
|
|
command: `cd ../server && npm run dev`,
|
|
url: `http://localhost:${serverPort}/api/health`,
|
|
reuseExistingServer: true,
|
|
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',
|
|
// No ALLOWED_ROOT_DIRECTORY restriction - allow all paths for testing
|
|
},
|
|
},
|
|
// Frontend Vite dev server
|
|
{
|
|
command: `npm run dev`,
|
|
url: `http://localhost:${port}`,
|
|
reuseExistingServer: true,
|
|
timeout: 120000,
|
|
env: {
|
|
...process.env,
|
|
VITE_SKIP_SETUP: 'true',
|
|
// Skip electron plugin in CI - no display available for Electron
|
|
VITE_SKIP_ELECTRON: process.env.CI === 'true' ? 'true' : undefined,
|
|
},
|
|
},
|
|
],
|
|
}),
|
|
});
|