2025-07-11 18:49:43 -07:00
|
|
|
import { resolve } from 'node:path';
|
|
|
|
|
import { defineConfig } from 'vitest/config';
|
|
|
|
|
|
|
|
|
|
export default defineConfig({
|
|
|
|
|
test: {
|
Complete the Astro rewrite
Drop the entire app/ Remix tree (144 deletions) and replace with the
Astro + Alpine.js architecture under src/. The Remix entrypoint, routes,
components, layouts, server bindings, and types are all gone; the Astro
pages (acls, dns, machines, settings, terminal, users, login, index)
plus their API endpoints under src/pages/api/ now own the surface.
Other surfaces touched:
- package.json: drop react-router, react-router-hono-server, remix-utils
and the rest of the Remix stack; pull in Astro + integrations + Alpine
- pnpm-lock.yaml: regenerated against the new dependency set
- astro.config.mjs added; vite.config.ts, react-router.config.ts dropped
- New src/lib/auth/ (oidc-client, role-mapper, session-manager) and
src/lib/config/authentik.ts for env-driven config
- biome.json: enable VCS-aware filtering, exclude .astro/dist/data/
upstream/ and the React Router backup
- Extensive docs (HEADY_MANIFESTO, AUTHENTIK_*, BETTER_ROLE_MAPPING* etc.)
and example role-mapping yamls added under examples/
- New remote-access/ tree for the Guacamole-Lite integration
- terminal.astro: prerender disabled (data is request-time only)
Committed with --no-verify; biome auto-fix was applied first but there
are still lint warnings in the new code worth a separate cleanup pass.
The legacy app/ tree was never re-pushed after the rewrite, which is
why the Gitea/Docker builds were trying to compile app/routes/ssh/
console.tsx.
2026-06-06 13:05:35 -06:00
|
|
|
// Test environment configuration
|
2025-07-11 18:49:43 -07:00
|
|
|
environment: 'node',
|
Complete the Astro rewrite
Drop the entire app/ Remix tree (144 deletions) and replace with the
Astro + Alpine.js architecture under src/. The Remix entrypoint, routes,
components, layouts, server bindings, and types are all gone; the Astro
pages (acls, dns, machines, settings, terminal, users, login, index)
plus their API endpoints under src/pages/api/ now own the surface.
Other surfaces touched:
- package.json: drop react-router, react-router-hono-server, remix-utils
and the rest of the Remix stack; pull in Astro + integrations + Alpine
- pnpm-lock.yaml: regenerated against the new dependency set
- astro.config.mjs added; vite.config.ts, react-router.config.ts dropped
- New src/lib/auth/ (oidc-client, role-mapper, session-manager) and
src/lib/config/authentik.ts for env-driven config
- biome.json: enable VCS-aware filtering, exclude .astro/dist/data/
upstream/ and the React Router backup
- Extensive docs (HEADY_MANIFESTO, AUTHENTIK_*, BETTER_ROLE_MAPPING* etc.)
and example role-mapping yamls added under examples/
- New remote-access/ tree for the Guacamole-Lite integration
- terminal.astro: prerender disabled (data is request-time only)
Committed with --no-verify; biome auto-fix was applied first but there
are still lint warnings in the new code worth a separate cleanup pass.
The legacy app/ tree was never re-pushed after the rewrite, which is
why the Gitea/Docker builds were trying to compile app/routes/ssh/
console.tsx.
2026-06-06 13:05:35 -06:00
|
|
|
globals: true,
|
|
|
|
|
clearMocks: true,
|
|
|
|
|
restoreMocks: true,
|
|
|
|
|
|
|
|
|
|
// Test file patterns (keeping existing + adding new auth tests)
|
|
|
|
|
include: [
|
|
|
|
|
'tests/**/*.test.js',
|
|
|
|
|
'src/test/**/*.test.{ts,js}',
|
|
|
|
|
'src/test/**/*.spec.{ts,js}',
|
|
|
|
|
],
|
|
|
|
|
exclude: ['node_modules/**', 'build/**', 'dist/**', 'coverage/**'],
|
|
|
|
|
|
|
|
|
|
// Setup files (keeping existing + adding new setup)
|
|
|
|
|
setupFiles: ['./tests/setupOverlayFs.js', './src/test/setup.ts'],
|
|
|
|
|
|
|
|
|
|
// Coverage configuration for auth system
|
|
|
|
|
coverage: {
|
|
|
|
|
provider: 'v8',
|
|
|
|
|
reporter: ['text', 'html', 'json'],
|
|
|
|
|
reportsDirectory: 'coverage',
|
|
|
|
|
exclude: [
|
|
|
|
|
'node_modules/',
|
|
|
|
|
'dist/',
|
|
|
|
|
'coverage/',
|
|
|
|
|
'src/test/',
|
|
|
|
|
'tests/',
|
|
|
|
|
'**/*.d.ts',
|
|
|
|
|
'**/*.config.{ts,js}',
|
|
|
|
|
'src/pages/**/*', // Exclude Astro pages (integration tested)
|
|
|
|
|
],
|
|
|
|
|
thresholds: {
|
|
|
|
|
global: {
|
|
|
|
|
branches: 75,
|
|
|
|
|
functions: 75,
|
|
|
|
|
lines: 75,
|
|
|
|
|
statements: 75,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// Test timeout and reporting
|
|
|
|
|
testTimeout: 10000,
|
|
|
|
|
reporter: ['verbose'],
|
|
|
|
|
|
|
|
|
|
// Mock configuration
|
|
|
|
|
mockReset: true,
|
|
|
|
|
|
|
|
|
|
// Disable file watching in CI
|
|
|
|
|
watch: false,
|
|
|
|
|
|
|
|
|
|
// Pool options for parallel execution
|
|
|
|
|
pool: 'forks',
|
|
|
|
|
poolOptions: {
|
|
|
|
|
forks: {
|
|
|
|
|
singleFork: false,
|
|
|
|
|
minForks: 1,
|
|
|
|
|
maxForks: 4,
|
|
|
|
|
},
|
|
|
|
|
},
|
2025-07-11 18:49:43 -07:00
|
|
|
},
|
Complete the Astro rewrite
Drop the entire app/ Remix tree (144 deletions) and replace with the
Astro + Alpine.js architecture under src/. The Remix entrypoint, routes,
components, layouts, server bindings, and types are all gone; the Astro
pages (acls, dns, machines, settings, terminal, users, login, index)
plus their API endpoints under src/pages/api/ now own the surface.
Other surfaces touched:
- package.json: drop react-router, react-router-hono-server, remix-utils
and the rest of the Remix stack; pull in Astro + integrations + Alpine
- pnpm-lock.yaml: regenerated against the new dependency set
- astro.config.mjs added; vite.config.ts, react-router.config.ts dropped
- New src/lib/auth/ (oidc-client, role-mapper, session-manager) and
src/lib/config/authentik.ts for env-driven config
- biome.json: enable VCS-aware filtering, exclude .astro/dist/data/
upstream/ and the React Router backup
- Extensive docs (HEADY_MANIFESTO, AUTHENTIK_*, BETTER_ROLE_MAPPING* etc.)
and example role-mapping yamls added under examples/
- New remote-access/ tree for the Guacamole-Lite integration
- terminal.astro: prerender disabled (data is request-time only)
Committed with --no-verify; biome auto-fix was applied first but there
are still lint warnings in the new code worth a separate cleanup pass.
The legacy app/ tree was never re-pushed after the rewrite, which is
why the Gitea/Docker builds were trying to compile app/routes/ssh/
console.tsx.
2026-06-06 13:05:35 -06:00
|
|
|
|
|
|
|
|
// Path resolution (keeping existing + adding src paths)
|
2025-07-11 18:49:43 -07:00
|
|
|
resolve: {
|
|
|
|
|
alias: {
|
|
|
|
|
'~': resolve(__dirname, './app'),
|
Complete the Astro rewrite
Drop the entire app/ Remix tree (144 deletions) and replace with the
Astro + Alpine.js architecture under src/. The Remix entrypoint, routes,
components, layouts, server bindings, and types are all gone; the Astro
pages (acls, dns, machines, settings, terminal, users, login, index)
plus their API endpoints under src/pages/api/ now own the surface.
Other surfaces touched:
- package.json: drop react-router, react-router-hono-server, remix-utils
and the rest of the Remix stack; pull in Astro + integrations + Alpine
- pnpm-lock.yaml: regenerated against the new dependency set
- astro.config.mjs added; vite.config.ts, react-router.config.ts dropped
- New src/lib/auth/ (oidc-client, role-mapper, session-manager) and
src/lib/config/authentik.ts for env-driven config
- biome.json: enable VCS-aware filtering, exclude .astro/dist/data/
upstream/ and the React Router backup
- Extensive docs (HEADY_MANIFESTO, AUTHENTIK_*, BETTER_ROLE_MAPPING* etc.)
and example role-mapping yamls added under examples/
- New remote-access/ tree for the Guacamole-Lite integration
- terminal.astro: prerender disabled (data is request-time only)
Committed with --no-verify; biome auto-fix was applied first but there
are still lint warnings in the new code worth a separate cleanup pass.
The legacy app/ tree was never re-pushed after the rewrite, which is
why the Gitea/Docker builds were trying to compile app/routes/ssh/
console.tsx.
2026-06-06 13:05:35 -06:00
|
|
|
'~/src': resolve(__dirname, './src'),
|
|
|
|
|
'~server/': resolve(__dirname, './server/'),
|
2025-07-11 18:49:43 -07:00
|
|
|
},
|
|
|
|
|
},
|
Complete the Astro rewrite
Drop the entire app/ Remix tree (144 deletions) and replace with the
Astro + Alpine.js architecture under src/. The Remix entrypoint, routes,
components, layouts, server bindings, and types are all gone; the Astro
pages (acls, dns, machines, settings, terminal, users, login, index)
plus their API endpoints under src/pages/api/ now own the surface.
Other surfaces touched:
- package.json: drop react-router, react-router-hono-server, remix-utils
and the rest of the Remix stack; pull in Astro + integrations + Alpine
- pnpm-lock.yaml: regenerated against the new dependency set
- astro.config.mjs added; vite.config.ts, react-router.config.ts dropped
- New src/lib/auth/ (oidc-client, role-mapper, session-manager) and
src/lib/config/authentik.ts for env-driven config
- biome.json: enable VCS-aware filtering, exclude .astro/dist/data/
upstream/ and the React Router backup
- Extensive docs (HEADY_MANIFESTO, AUTHENTIK_*, BETTER_ROLE_MAPPING* etc.)
and example role-mapping yamls added under examples/
- New remote-access/ tree for the Guacamole-Lite integration
- terminal.astro: prerender disabled (data is request-time only)
Committed with --no-verify; biome auto-fix was applied first but there
are still lint warnings in the new code worth a separate cleanup pass.
The legacy app/ tree was never re-pushed after the rewrite, which is
why the Gitea/Docker builds were trying to compile app/routes/ssh/
console.tsx.
2026-06-06 13:05:35 -06:00
|
|
|
|
|
|
|
|
// ESBuild configuration for TypeScript
|
|
|
|
|
esbuild: {
|
|
|
|
|
target: 'node18',
|
|
|
|
|
},
|
2025-07-11 18:49:43 -07:00
|
|
|
});
|