mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-27 02:51:57 +02:00
* Update test script to allow coverage to be recorded * Collect coverage in CI * [web] integrate coverage report with Jenkins * [web] add coverage report for acceptance tests * Use --all flag in vitest coverage * Use --all flag in acceptance tests * Switch vitest to use istanbul * Bump versions of vitest plugins and update package-lock.json * [web] use a dedicated parameter for coverage in unit/acceptance tests * [web] temporarily generate HTML report and archive artifacts * [web] do not run acceptance tests as root in CI * [web] increase hook timeout in vitest when collecting coverage * [web] exclude packageMapping from coverage report * [web] use relative paths in clover reports * [web] reduce concurrency for unit tests in CI * [web] keep source code forever on builds * Revert "[web] temporarily generate HTML report and archive artifacts" This reverts commit 4c9db571 * [web] archive all the raw coverage report files * [monorepo] update build scripts for web * [monorepo] update package-lock.json after merge * [web] remove spurious change * [web] merge Jenkins parameter sections * [web] increase hookTimeout when collecting coverage report --------- Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com> GitOrigin-RevId: 9f1ec6d38a7b037267737bec3b0bc53a0ac844af
78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
const { defineConfig } = require('vitest/config')
|
|
|
|
const COVERAGE_ENABLED = process.env.COVERAGE_UNIT_TESTS === 'true'
|
|
|
|
let reporterOptions = {}
|
|
if (process.env.CI && process.env.JUNIT_ROOT_SUITE_NAME) {
|
|
reporterOptions = {
|
|
maxWorkers: '50%',
|
|
reporters: [
|
|
'default',
|
|
[
|
|
'junit',
|
|
{
|
|
classnameTemplate: `${process.env.JUNIT_ROOT_SUITE_NAME}.{filename}`,
|
|
},
|
|
],
|
|
],
|
|
outputFile: 'data/reports/junit-vitest.xml',
|
|
}
|
|
}
|
|
|
|
module.exports = defineConfig({
|
|
test: {
|
|
setupFiles: ['./test/unit/bootstrap.mjs'],
|
|
globals: true,
|
|
isolate: false,
|
|
passWithNoTests: true, // in case there are no tests from one project or other in a module
|
|
projects: [
|
|
{
|
|
extends: true,
|
|
test: {
|
|
name: 'Parallel',
|
|
include: [
|
|
'modules/*/test/unit/**/*.test.mjs',
|
|
'test/unit/src/**/*.test.mjs',
|
|
],
|
|
sequence: {
|
|
groupOrder: 2,
|
|
},
|
|
exclude: ['**/*.sequential.test.mjs'],
|
|
fileParallelism: true,
|
|
},
|
|
},
|
|
{
|
|
extends: true,
|
|
test: {
|
|
name: 'Sequential',
|
|
sequence: {
|
|
groupOrder: 1,
|
|
},
|
|
include: [
|
|
'modules/*/test/unit/**/*.sequential.test.mjs',
|
|
'test/unit/src/**/*.sequential.test.mjs',
|
|
],
|
|
fileParallelism: false,
|
|
},
|
|
},
|
|
],
|
|
...reporterOptions,
|
|
hookTimeout: COVERAGE_ENABLED ? 20_000 : 10_000,
|
|
coverage: {
|
|
enabled: COVERAGE_ENABLED,
|
|
// Add 'sequential' / 'parallel' to the folder
|
|
reportsDirectory: `data/coverage/esm-unit-${(process.env.JUNIT_ROOT_SUITE_NAME || 'all').split(' ').pop()}`,
|
|
include: [
|
|
'app.mjs',
|
|
'app/**/*.{js,mjs}',
|
|
'modules/*/index.mjs',
|
|
'modules/*/app/src/**/*.{js,mjs}',
|
|
],
|
|
exclude: ['app/src/Features/Metadata/packageMapping.mjs'],
|
|
provider: 'istanbul',
|
|
reporters: ['console-details', 'clover'],
|
|
all: true,
|
|
},
|
|
},
|
|
})
|