mnaoumov_obsidian-advanced-.../scripts/vitest-config.ts

105 lines
3.4 KiB
TypeScript
Raw Normal View History

2026-05-15 04:44:31 +00:00
import { defineConfig } from 'vitest/config';
const SHARED_EXCLUDE = ['node_modules', 'dist'];
const BIG_TIMEOUT_IN_MILLISECONDS = 30_000;
const ANDROID_TIMEOUT_IN_MILLISECONDS = 60_000;
2026-06-26 04:29:49 +00:00
const PERFORMANCE_TIMEOUT_IN_MILLISECONDS = 600_000;
2026-05-15 04:44:31 +00:00
const HOOK_TIMEOUT_MULTIPLIER = 4;
export const config = defineConfig({
test: {
coverage: {
exclude: [
'src/**/*.test.ts'
],
include: ['src/**/*.ts'],
provider: 'v8',
reporter: ['text', 'lcov', 'html'],
reportsDirectory: './coverage'
},
exclude: ['node_modules', 'dist'],
globals: false,
include: ['src/**/*.test.ts'],
passWithNoTests: true,
projects: [
{
resolve: {
alias: {
obsidian: 'obsidian-test-mocks/obsidian'
}
},
test: {
environment: 'jsdom',
exclude: [...SHARED_EXCLUDE, 'src/**/*.integration.test.ts'],
execArgv: ['--no-webstorage'],
include: ['src/**/*.test.ts'],
name: 'unit-tests',
2026-05-20 05:32:20 +00:00
server: {
deps: {
inline: ['@obsidian-typings', 'obsidian-dev-utils']
}
},
2026-05-26 13:34:29 +00:00
setupFiles: [
'obsidian-test-mocks/vitest-setup',
'obsidian-test-mocks/obsidian-typings/vitest-setup',
'obsidian-dev-utils/vitest-setup'
2026-05-26 13:34:29 +00:00
]
2026-05-15 04:44:31 +00:00
}
},
{
test: {
environment: 'node',
fileParallelism: false,
hookTimeout: BIG_TIMEOUT_IN_MILLISECONDS * HOOK_TIMEOUT_MULTIPLIER,
include: ['src/**/*.no-app.integration.test.ts'],
name: 'integration-tests:no-app',
testTimeout: BIG_TIMEOUT_IN_MILLISECONDS
}
},
{
test: {
environment: 'node',
fileParallelism: false,
2026-07-22 01:00:44 +00:00
globalSetup: ['obsidian-integration-testing/vitest-global-setup-plugin'],
2026-05-15 04:44:31 +00:00
hookTimeout: BIG_TIMEOUT_IN_MILLISECONDS * HOOK_TIMEOUT_MULTIPLIER,
include: ['src/**/*.desktop.integration.test.ts'],
name: 'integration-tests:desktop',
setupFiles: ['obsidian-integration-testing/vitest-setup'],
2026-05-15 04:44:31 +00:00
testTimeout: BIG_TIMEOUT_IN_MILLISECONDS
}
},
2026-06-26 04:29:49 +00:00
{
test: {
environment: 'node',
fileParallelism: false,
2026-07-22 01:00:44 +00:00
globalSetup: ['obsidian-integration-testing/vitest-global-setup-plugin'],
2026-06-26 04:29:49 +00:00
hookTimeout: PERFORMANCE_TIMEOUT_IN_MILLISECONDS,
include: ['src/**/*.desktop-performance.integration.test.ts'],
name: 'integration-tests:desktop-performance',
setupFiles: ['obsidian-integration-testing/vitest-setup'],
2026-06-26 04:29:49 +00:00
testTimeout: PERFORMANCE_TIMEOUT_IN_MILLISECONDS
}
},
2026-05-15 04:44:31 +00:00
{
test: {
environment: 'node',
environmentOptions: {
obsidianTransport: {
appiumUrl: 'http://localhost:4723',
avdName: 'obsidian_test',
type: 'obsidian-android-appium'
}
},
fileParallelism: false,
2026-07-22 01:00:44 +00:00
globalSetup: ['obsidian-integration-testing/vitest-global-setup-plugin'],
2026-05-15 04:44:31 +00:00
hookTimeout: ANDROID_TIMEOUT_IN_MILLISECONDS * HOOK_TIMEOUT_MULTIPLIER,
include: ['src/**/*.android.integration.test.ts'],
name: 'integration-tests:android',
setupFiles: ['obsidian-integration-testing/vitest-setup'],
2026-05-15 04:44:31 +00:00
testTimeout: ANDROID_TIMEOUT_IN_MILLISECONDS
}
}
]
}
});