first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 21:52:23 +03:00
commit 880f412e2c
2662 changed files with 866266 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
import { defineConfig, devices } from '@playwright/test'
/**
* Playwright configuration for Bifrost E2E tests
* @see https://playwright.dev/docs/test-configuration
*/
export default defineConfig({
// Look for test files in the features directory
testDir: './features',
// Run tests in files in parallel
fullyParallel: true,
// Fail the build on CI if you accidentally left test.only in the source code
forbidOnly: !!process.env.CI,
// Retry on CI only
retries: process.env.CI ? 2 : 0,
// Opt out of parallel tests on CI for stability
workers: process.env.CI ? 1 : undefined,
// Reporter to use
reporter: [
[
'html',
{
// Report in tests/e2e/playwright-report so `npx playwright show-report`
// (run from tests/e2e) finds it. CI uploads tests/e2e/playwright-report/.
outputFolder: 'playwright-report',
open: 'never',
},
],
['list'],
],
// Shared settings for all the projects below
use: {
// Base URL for the application
baseURL: process.env.BASE_URL || 'http://localhost:3000',
// Collect trace when retrying the failed test
trace: 'on-first-retry',
// Take screenshot only on failure
screenshot: 'only-on-failure',
// Record video only on failure
video: 'retain-on-failure',
// Timeout for each action
actionTimeout: 10000,
// Timeout for navigation
navigationTimeout: 30000,
},
// Global timeout for each test
timeout: 60000,
// Expect timeout
expect: {
timeout: 10000,
},
// Configure projects: run all tests first, then config last (via dependency order)
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
testIgnore: ['**/config/**', '**/plugins/**', '**/virtual-keys/**', '**/mcp-registry/**', '**/model-limits/**', '**/providers/**'],
},
{
name: 'chromium-serial',
use: { ...devices['Desktop Chrome'] },
testMatch: ['**/plugins/**/*.spec.ts', '**/virtual-keys/**/*.spec.ts', '**/mcp-registry/**/*.spec.ts', '**/model-limits/**/*.spec.ts', '**/providers/**/*.spec.ts'],
fullyParallel: false,
},
{
name: 'chromium-config',
use: { ...devices['Desktop Chrome'] },
testMatch: ['**/config/**/*.spec.ts'],
dependencies: ['chromium', 'chromium-serial'],
},
// Uncomment for additional browser testing
// {
// name: 'firefox',
// use: { ...devices['Desktop Firefox'] },
// },
// {
// name: 'webkit',
// use: { ...devices['Desktop Safari'] },
// },
],
// Run local dev server before starting tests
// Set SKIP_WEB_SERVER=1 to skip auto-starting the dev server
webServer: process.env.SKIP_WEB_SERVER ? undefined : {
command: 'npm run dev',
url: 'http://localhost:3000',
reuseExistingServer: true,
cwd: '../../ui',
timeout: 120000,
env: {
...process.env,
BIFROST_DISABLE_PROFILER: '1',
},
},
// Global setup: Build test plugin and start MCP servers; returns teardown to stop MCP servers
globalSetup: require.resolve('./global-setup'),
})