import type { UserConfig as ViteUserConfig } from 'vite' import type { TestUserConfig } from 'vitest/node' import type { RunVitestConfig, TestFsStructure, VitestRunnerCLIOptions } from '../../test-utils' import { runInlineTests, runVitest } from '../../test-utils' import { instances, provider } from '../settings' export { instances, provider } from '../settings' export async function runInlineBrowserTests( structure: TestFsStructure, config?: RunVitestConfig, options?: VitestRunnerCLIOptions, ) { return runInlineTests( structure, { watch: false, reporters: 'none', ...config, browser: { enabled: true, provider, instances, headless: true, ...config?.browser, } as TestUserConfig['browser'], }, options, ) } export async function runBrowserTests( config?: Omit & { browser?: Partial }, include?: string[], viteOverrides?: Partial, runnerOptions?: VitestRunnerCLIOptions, ) { const result = await runVitest( { watch: false, reporters: 'none', ...config, browser: { headless: true, ...config?.browser }, $viteConfig: viteOverrides, }, include, runnerOptions, ) return { ...result, ctx: result.ctx!, stderr: result.stderr.replace( "Testing types with tsc and vue-tsc is an experimental feature.\nBreaking changes might not follow SemVer, please pin Vitest's version when using it.\n", '', ), } }