AcadeDoc/apps/server/vitest.config.ts
Corentin b53ab5043f feat(acadedoc): add AcadeDoc branding, Brevo SMTP preset, UI customization — R4.4
- Rebranding: BRAND_NAME env var (default AcadeDoc) replaces hardcoded "DocAdenice"
  in index.html title/meta, PWA manifest, app-header logo text, email footer/body
- lib/config.ts: getAppName() reads BRAND_NAME; new getBrandLogoUrl/PrimaryColor/AccentColor helpers
- vite.config.ts: BRAND_* vars exposed via define block to client
- brand-theme.ts: getBrandTheme() generates 10-shade MantineColorsTuple from hex
  (no @mantine/colors-generator dep); merged into MantineProvider at boot
- theme/__tests__/brand-theme.test.ts: 11 vitest tests (generateColorTuple + getBrandTheme)
- Workspace branding: migration adds primary_color/accent_color to workspaces table
  WorkspaceBrandingService + WorkspaceBrandingController (POST /workspace/branding,
  POST /workspace/branding/update — admin only) + DTO hex validation
- Settings: /settings/branding page (WorkspaceBranding) + sidebar entry (admin-only)
- workspace-branding.spec.ts: 13 vitest tests (service + controller + DTO validation)
- SMTP Brevo: .env.example preset block + transactional/README.md ops guide
  (key gen, port 587 STARTTLS, 300/day free limit, swaks/curl test)
- environment.service.ts: getMailFromName() falls back to BRAND_NAME if MAIL_FROM_NAME unset
- vitest.config.ts server: include pattern extended to src/core/workspace/spec/**
- i18n: 11 branding keys added to en-US and fr-FR translations
- 0 TypeScript errors client + server, 11 client + 13 server new tests all green

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 11:36:38 +02:00

43 lines
1.3 KiB
TypeScript

/**
* Vitest config for Acadenice server specs (R3.x).
*
* Why a separate vitest config alongside Jest:
* The Docmost upstream test suite uses Jest with ts-jest. The Acadenice R3
* server specs were written with vitest (vi.fn(), vi.mock(), etc.) to match
* the client-side test style. Rather than rewrite all specs to Jest, we run
* acadenice specs with vitest and upstream specs with jest.
*
* Run: npx vitest run --config vitest.config.ts
*/
import { defineConfig } from "vitest/config";
import * as path from "path";
export default defineConfig({
resolve: {
alias: {
"@docmost/db": path.resolve(__dirname, "./src/database"),
"@docmost/transactional": path.resolve(
__dirname,
"./src/integrations/transactional",
),
"@docmost/ee": path.resolve(__dirname, "./src/ee"),
},
},
test: {
// Only cover acadenice specs — upstream Docmost tests use Jest.
// R4.4: also include workspace branding spec.
include: [
"src/core/acadenice/**/*.spec.ts",
"src/database/migrations/**/*.spec.ts",
"src/core/workspace/spec/**/*.spec.ts",
],
globals: true,
environment: "node",
// Vitest needs to transform ESM-only packages
server: {
deps: {
inline: ["nestjs-kysely"],
},
},
},
});