Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
test testing-tools vite
Something went wrong. Try again.
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172import { fileURLToPath } from 'node:url'import { playwright } from '@vitest/browser-playwright'import { x } from 'tinyexec'import { expect, test } from 'vitest'import { Cli } from '../../test-utils/cli'import { provider } from '../settings'import { runBrowserTests } from './utils'
test.runIf(provider.name === 'playwright')( '[playwright] runs in connect mode', async ({ onTestFinished }) => { const cliPath = fileURLToPath(new URL('./cli.js', import.meta.resolve('@playwright/test'))) const subprocess = x(process.execPath, [ cliPath, 'run-server', '--port', '9898', '--host', '127.0.0.1', '--unsafe', ]).process! const cli = new Cli({ stdin: subprocess.stdin, stdout: subprocess.stdout, stderr: subprocess.stderr, }) let setDone: (value?: unknown) => void const isDone = new Promise((resolve) => (setDone = resolve)) subprocess.on('exit', () => setDone()) onTestFinished(async () => { subprocess.kill('SIGILL') await isDone })
await cli.waitForStdout('Listening on ws://127.0.0.1:9898')
const result = await runBrowserTests( { root: './fixtures/playwright-connect', browser: { instances: [ { browser: 'chromium', name: 'chromium', provider: playwright({ connectOptions: { wsEndpoint: 'ws://127.0.0.1:9898', }, launchOptions: { args: [`--user-agent=VitestLaunchOptionsTester`], }, }), }, ], }, }, ['basic.test.js'], )
expect(result.stderr).toMatchInlineSnapshot(`""`) expect(result.errorTree()).toMatchInlineSnapshot(` { "basic.test.js": { "[playwright] Run basic test in browser via connect mode": "passed", "[playwright] Run browser-only test in browser via connect mode": "passed", "[playwright] applies launch options from connect header": "passed", }, } `) },)