0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-05-01 12:30:27 +00:00
nextcloud_server/vitest.config.mts
Ferdinand Thiessen 0e50ba839c
test: ignore git-ignored files from tests
Fix running `npm run test` when your development setup has other apps
checked out - like having the viewer app installed locally in `apps`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-29 10:15:29 +02:00

57 lines
1.6 KiB
TypeScript

/**
* 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\//],
},
},
},
})