diff options
Diffstat (limited to 'vitest.config.mts')
-rw-r--r-- | vitest.config.mts | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vitest.config.mts b/vitest.config.mts new file mode 100644 index 00000000000..4fe5bd4d32f --- /dev/null +++ b/vitest.config.mts @@ -0,0 +1,57 @@ +/** + * SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: CC0-1.0 + */ +import { defaultExclude, defineConfig } from 'vitest/config' +import vue from '@vitejs/plugin-vue2' +import { exec } from 'node:child_process' +import { promisify } from 'node:util' + +const gitIgnore: string[] = [] +// get all files ignored in the apps directory (e.g. if putting `view` app there). +try { + const execAsync = promisify(exec) + const { stdout } = await execAsync('git check-ignore apps/*', { cwd: __dirname }) + gitIgnore.push(...stdout.split('\n').filter(Boolean)) + // eslint-disable-next-line no-console + console.log('Git ignored files excluded from tests: ', gitIgnore) +} catch (error) { + // we can ignore error code 1 as this just means there are no ignored files + if (error.code !== 1) { + // but otherwise something bad is happening and we should re-throw + throw error + } +} + +export default defineConfig({ + plugins: [vue()], + test: { + include: ['{apps,core}/**/*.{test,spec}.?(c|m)[jt]s?(x)'], + environment: 'jsdom', + environmentOptions: { + jsdom: { + url: 'http://nextcloud.local', + }, + }, + coverage: { + include: ['apps/*/src/**', 'core/src/**'], + exclude: ['**.spec.*', '**.test.*', '**.cy.*', 'core/src/tests/**'], + provider: 'v8', + reporter: ['lcov', 'text'], + }, + setupFiles: [ + '__tests__/mock-window.js', + '__tests__/setup-testing-library.js', + ], + exclude: [ + ...defaultExclude, + ...gitIgnore, + ], + globalSetup: '__tests__/setup-global.js', + server: { + deps: { + inline: [/@nextcloud\//], + }, + }, + }, +}) |