Files
tcp-ingestion/vitest.config.ts
T
julian 155f034f61 Exclude integration tests from default pnpm test; opt-in via test:integration
The Redis-publisher integration test uses testcontainers to spin up a real
Redis. On the Gitea CI runner, `container.start()` hangs (likely image-pull
delay or restricted Docker access), and the 60s beforeAll timeout fails the
suite even though both tests ultimately would skip. The skip-on-error path
only fires when start() throws, not when it times out.

Fix: separate unit tests (default) from integration tests (opt-in). The
default `pnpm test` now runs only `test/**/*.test.ts` excluding
`*.integration.test.ts`. A new `pnpm test:integration` script runs them
via `vitest.integration.config.ts` with generous hook/test timeouts for
container startup.

CI runs `pnpm test` and is unaffected by Docker availability. Integration
tests can be run locally or in a future CI job that explicitly provisions
Docker.
2026-04-30 17:38:48 +02:00

23 lines
743 B
TypeScript

import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
include: ['test/**/*.test.ts'],
// Integration tests need external services (Docker, real Redis). They are
// opt-in via `pnpm test:integration` (see vitest.integration.config.ts).
// Excluding them here keeps `pnpm test` fast and CI-safe.
exclude: ['**/node_modules/**', 'test/**/*.integration.test.ts'],
environment: 'node',
coverage: {
provider: 'v8',
reporter: ['text', 'lcov'],
include: ['src/**/*.ts'],
},
},
resolve: {
// Allow vitest to import .ts files without explicit extensions
// when referenced from test files that don't use .js suffixes
extensions: ['.ts', '.js'],
},
});