n8n/packages/@n8n/vitest-config/node.ts

32 lines
949 B
TypeScript

import { defineConfig } from 'vitest/config';
import type { InlineConfig } from 'vitest/node';
/**
* Shared test options without the outer defineConfig wrapper.
* Use this when you need to spread the config into workspace projects.
*/
export const createBaseInlineConfig = (options: InlineConfig = {}): InlineConfig => ({
silent: true,
globals: true,
environment: 'node',
reporters: process.env.CI === 'true' ? ['default', 'junit'] : ['default'],
outputFile: { junit: './junit.xml' },
...(process.env.COVERAGE_ENABLED === 'true'
? {
coverage: {
enabled: true,
provider: 'v8',
reporter: process.env.CI === 'true' ? 'cobertura' : 'text-summary',
include: ['src/**/*'],
exclude: ['**/*.grammar'],
},
}
: {}),
...options,
});
export const createVitestConfig = (options: InlineConfig = {}) =>
defineConfig({ test: createBaseInlineConfig(options) });
export const vitestConfig = createVitestConfig();