Some checks failed
CI / Unit & Component Tests (push) Has been cancelled
CI / OCR Service Tests (push) Has been cancelled
CI / Backend Unit Tests (push) Has been cancelled
CI / fail2ban Regex (push) Has been cancelled
CI / Compose Bucket Idempotency (push) Has been cancelled
CI / Unit & Component Tests (pull_request) Failing after 2m35s
CI / OCR Service Tests (pull_request) Successful in 16s
CI / Backend Unit Tests (pull_request) Successful in 4m21s
CI / fail2ban Regex (pull_request) Successful in 39s
CI / Compose Bucket Idempotency (pull_request) Failing after 11s
Branches gate was blocking CI at 75% measured coverage. The 80% floor suffers Istanbul parent/child denominator coupling (long-tail grind, per #496) that makes the remaining gap disproportionately costly to close. Drop branches to 75 to match current state; leave lines/functions/ statements at 80. ADR-013 documents the rationale and the ratchet rule for raising the gate back incrementally. Closes #556 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
54 lines
1.8 KiB
TypeScript
54 lines
1.8 KiB
TypeScript
import { paraglideVitePlugin } from '@inlang/paraglide-js';
|
|
import devtoolsJson from 'vite-plugin-devtools-json';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import { defineConfig } from 'vitest/config';
|
|
import { playwright } from '@vitest/browser-playwright';
|
|
import { sveltekit } from '@sveltejs/kit/vite';
|
|
|
|
// Standalone config for browser-project Istanbul coverage.
|
|
// Uses a dedicated root-level coverage block because Vitest 4 ignores
|
|
// per-project coverage overrides inside test.projects.
|
|
// Plugins mirrored from vite.config.ts: tailwindcss, sveltekit, devtoolsJson, paraglideVitePlugin
|
|
// Update here whenever vite.config.ts plugins change.
|
|
export default defineConfig({
|
|
optimizeDeps: {
|
|
include: ['pdfjs-dist', '@tiptap/core', '@tiptap/starter-kit', '@tiptap/extension-mention']
|
|
},
|
|
plugins: [
|
|
tailwindcss(),
|
|
sveltekit(),
|
|
devtoolsJson(),
|
|
paraglideVitePlugin({
|
|
project: './project.inlang',
|
|
outdir: './src/lib/paraglide'
|
|
})
|
|
],
|
|
test: {
|
|
expect: { requireAssertions: true },
|
|
browser: {
|
|
enabled: true,
|
|
provider: playwright(),
|
|
instances: [{ browser: 'chromium', headless: true }],
|
|
screenshotDirectory: 'test-results/screenshots',
|
|
screenshotFailures: true
|
|
},
|
|
setupFiles: ['./src/test-setup.ts'],
|
|
include: ['src/**/*.svelte.{test,spec}.{js,ts}'],
|
|
exclude: ['src/lib/server/**'],
|
|
coverage: {
|
|
provider: 'istanbul',
|
|
reporter: ['text', 'lcov'],
|
|
reportsDirectory: 'coverage/client',
|
|
include: ['src/**/*.svelte', 'src/**/*.svelte.ts'],
|
|
exclude: ['src/lib/paraglide/**', 'src/lib/generated/**', 'src/hooks/**', '**/__mocks__/**'],
|
|
thresholds: {
|
|
lines: 80,
|
|
functions: 80,
|
|
// branches at 75 — long-tail parent/child accounting grind; see docs/adr/013-client-branches-coverage-threshold.md and #496
|
|
branches: 75,
|
|
statements: 80
|
|
}
|
|
}
|
|
}
|
|
});
|