mirror of
https://github.com/mudler/LocalAI.git
synced 2026-05-29 19:19:19 -04:00
- Strict monotonic Go coverage gate (make test-coverage-check, 45% baseline) run in CI; fixes ginkgo dropping all-but-one coverprofile across multiple recursive roots, builds with -tags auth, and folds in the in-process tests/e2e suite via --coverpkg. - React UI e2e coverage (make test-ui-coverage: vite-plugin-istanbul + nyc, nix-provided Chromium) plus e2e specs for 6 previously-untested pages, and a UI coverage gate (make test-ui-coverage-check) with a small tolerance since e2e line coverage jitters ~0.5pp run-to-run. - pre-commit hook: lint + coverage on Go changes, Playwright e2e + UI coverage gate on react-ui changes; install with make install-hooks. - New Go handler tests (settings, branding), hermetic base64 download test. - fix(ui): model editor reads vram_display (snake_case), so the VRAM estimate renders again; covered by a regression test. Assisted-by: Claude:claude-opus-4-7 Signed-off-by: Richard Palethorpe <io@richiejp.com>
55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import istanbul from 'vite-plugin-istanbul'
|
|
|
|
const backendUrl = process.env.LOCALAI_URL || 'http://localhost:8080'
|
|
|
|
// COVERAGE=true produces an instrumented build whose modules report istanbul
|
|
// counters on window.__coverage__, harvested by the Playwright coverage
|
|
// fixture (e2e/coverage-fixtures.js). Off by default so normal/dev/prod builds
|
|
// carry no instrumentation overhead.
|
|
const coverage = process.env.COVERAGE === 'true'
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
...(coverage
|
|
? [
|
|
istanbul({
|
|
include: 'src/**/*',
|
|
extension: ['.js', '.jsx', '.ts', '.tsx'],
|
|
requireEnv: false,
|
|
// The e2e suite runs against `vite build` output, not the dev
|
|
// server, so instrumentation must be applied to the production
|
|
// build too (the plugin only instruments dev mode otherwise).
|
|
forceBuildInstrument: true,
|
|
}),
|
|
]
|
|
: []),
|
|
],
|
|
base: '/',
|
|
server: {
|
|
port: 3000,
|
|
proxy: {
|
|
'/api': backendUrl,
|
|
'/v1': backendUrl,
|
|
'/tts': backendUrl,
|
|
'/video': backendUrl,
|
|
'/backend': backendUrl,
|
|
'/models': backendUrl,
|
|
'/backends': backendUrl,
|
|
'/swagger': backendUrl,
|
|
'/static': backendUrl,
|
|
'/generated-audio': backendUrl,
|
|
'/generated-images': backendUrl,
|
|
'/generated-videos': backendUrl,
|
|
'/version': backendUrl,
|
|
'/system': backendUrl,
|
|
},
|
|
},
|
|
build: {
|
|
outDir: 'dist',
|
|
assetsDir: 'assets',
|
|
},
|
|
})
|