theatre/compat-tests/fixtures/vite4/vite4.compat-test.ts
2023-08-01 17:47:17 +02:00

42 lines
1.1 KiB
TypeScript

// @cspotcode/zx is zx in CommonJS
import {$, cd, path, ProcessPromise} from '@cspotcode/zx'
import {testServerAndPage} from '../../utils/testUtils'
$.verbose = false
const PATH_TO_PACKAGE = path.join(__dirname, `./package`)
describe(`vite4`, () => {
test(`\`$ vite build\` should succeed`, async () => {
cd(PATH_TO_PACKAGE)
const {exitCode} = await $`npm run build`
// at this point, the build should have succeeded
expect(exitCode).toEqual(0)
})
describe(`vite preview`, () => {
function startServerOnPort(port: number): ProcessPromise<unknown> {
cd(PATH_TO_PACKAGE)
return $`npm run preview -- --port ${port}`
}
async function waitTilServerIsReady(
process: ProcessPromise<unknown>,
port: number,
): Promise<{
url: string
}> {
for await (const chunk of process.stdout) {
if (chunk.toString().includes('--host')) {
// vite's server is running now
break
}
}
return {url: `http://localhost:${port}`}
}
testServerAndPage({startServerOnPort, waitTilServerIsReady})
})
})