|
import { defineConfig, devices } from "@playwright/test"; |
|
|
|
const base = defineConfig({ |
|
use: { |
|
screenshot: "only-on-failure", |
|
trace: "retain-on-failure", |
|
bypassCSP: true, |
|
launchOptions: { |
|
args: [ |
|
"--disable-web-security", |
|
"--use-fake-device-for-media-stream", |
|
"--use-fake-ui-for-media-stream", |
|
"--use-file-for-fake-audio-capture=../gradio/test_data/test_audio.wav" |
|
] |
|
} |
|
}, |
|
expect: { timeout: 10000 }, |
|
timeout: 10000, |
|
testMatch: /.*\.spec\.ts/, |
|
testDir: "..", |
|
workers: process.env.CI ? 1 : undefined, |
|
retries: 3 |
|
}); |
|
|
|
const normal = defineConfig(base, { |
|
globalSetup: process.env.CUSTOM_TEST ? undefined : "./playwright-setup.js", |
|
projects: [ |
|
{ |
|
name: "firefox", |
|
use: { ...devices["Desktop Firefox"] }, |
|
testMatch: /.stream_(audio|video)_out\.spec\.ts/ |
|
}, |
|
{ |
|
name: "chrome", |
|
use: { |
|
...devices["Desktop Chrome"], |
|
permissions: ["clipboard-read", "clipboard-write", "microphone"] |
|
}, |
|
testIgnore: /.stream_(audio|video)_out\.spec\.ts/ |
|
} |
|
] |
|
}); |
|
|
|
const lite = defineConfig(base, { |
|
webServer: { |
|
command: "python -m http.server 8000 --directory ../js/lite", |
|
url: "http://localhost:8000/", |
|
reuseExistingServer: !process.env.CI |
|
}, |
|
testMatch: [ |
|
"**/file_component_events.spec.ts", |
|
"**/kitchen_sink.spec.ts", |
|
"**/gallery_component_events.spec.ts", |
|
"**/image_remote_url.spec.ts", |
|
"**/outbreak_forecast.spec.ts" |
|
], |
|
workers: 1, |
|
retries: 3, |
|
timeout: 60000, |
|
projects: [ |
|
{ |
|
name: "chromium", |
|
use: { ...devices["Desktop Chrome"] } |
|
}, |
|
{ |
|
name: "firefox", |
|
use: { ...devices["Desktop Firefox"] }, |
|
testIgnore: "**/kitchen_sink.*" |
|
} |
|
] |
|
}); |
|
|
|
export default !!process.env.GRADIO_E2E_TEST_LITE ? lite : normal; |
|
|