Files
headplane/vitest.config.ts
T
2025-12-01 02:46:22 -05:00

55 lines
1.2 KiB
TypeScript

import { readFile } from 'node:fs/promises';
import { resolve } from 'node:path';
import { defineConfig } from 'vitest/config';
const prefix = process.env.__INTERNAL_PREFIX || '/admin';
if (prefix.endsWith('/')) {
throw new Error('Prefix must not end with a slash');
}
// Load the version via package.json
const pkg = await readFile('package.json', 'utf-8');
const isNext = process.env.IMAGE_TAG?.includes('next');
const { version } = JSON.parse(pkg);
if (!version) {
throw new Error('Unable to read version from package.json');
}
export default defineConfig({
test: {
projects: [
{
extends: true,
test: {
name: 'unit',
include: ['tests/unit/**/*.test.ts'],
setupFiles: ['tests/unit/setup/overlay-fs.ts'],
},
},
{
extends: true,
test: {
name: 'integration',
include: ['tests/integration/*.test.ts'],
setupFiles: ['tests/integration/setup/vitest-hook.ts'],
testTimeout: 15_000,
},
},
],
env: {
HEADPLANE_DEBUG_LOG: 'true',
},
environment: 'node',
exclude: ['node_modules/**', 'build/**'],
},
resolve: {
alias: {
'~': resolve(__dirname, './app'),
},
},
define: {
__VERSION__: JSON.stringify(isNext ? `${version}-next` : version),
__PREFIX__: JSON.stringify(prefix),
},
});