managarten/apps/storage/apps/web/vite.config.ts
Till JS 403b1c7b87 feat(storage): add controller tests, Caddy config, and PWA improvements
Controller tests (50 tests, all passing):
- FileController: 12 tests (CRUD, upload, download with headers/URL mode)
- FolderController: 8 tests (CRUD, move, favorite)
- TrashController: 6 tests (restore file/folder, permanent delete, empty)
- SearchController: 6 tests (search, empty query, favorites)
- ShareController: 7 tests (CRUD, expiresInDays conversion, public token)
- TagController: 7 tests (CRUD with optional color)

Total test count now: 159 (133 backend + 26 web)

Deployment:
- Add Caddy reverse proxy entries for storage.mana.how and storage-api.mana.how

PWA:
- Upgrade to 'full' preset for better offline caching (fonts, external resources)
- Add app shortcuts: Dateien, Suche, Favoriten
- Improve offline page with links to cached pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:48:11 +01:00

61 lines
1.4 KiB
TypeScript

/// <reference types="vitest/config" />
import { sveltekit } from '@sveltejs/kit/vite';
import tailwindcss from '@tailwindcss/vite';
import { defineConfig } from 'vite';
import { SvelteKitPWA } from '@vite-pwa/sveltekit';
import { createPWAConfig } from '@manacore/shared-pwa';
import { MANACORE_SHARED_PACKAGES, getBuildDefines } from '@manacore/shared-vite-config';
export default defineConfig({
plugins: [
tailwindcss(),
sveltekit(),
SvelteKitPWA(
createPWAConfig({
name: 'Storage - Cloud Speicher',
shortName: 'Storage',
description: 'Cloud-Dateispeicher mit Offline-Unterstützung',
themeColor: '#64748b',
preset: 'full',
shortcuts: [
{
name: 'Meine Dateien',
short_name: 'Dateien',
description: 'Dateien und Ordner öffnen',
url: '/files',
},
{
name: 'Suche',
short_name: 'Suche',
description: 'Dateien durchsuchen',
url: '/search',
},
{
name: 'Favoriten',
short_name: 'Favoriten',
description: 'Favorisierte Dateien anzeigen',
url: '/favorites',
},
],
})
),
],
server: {
port: 5185,
strictPort: true,
},
ssr: {
noExternal: [...MANACORE_SHARED_PACKAGES, 'lucide-svelte'],
},
optimizeDeps: {
exclude: [...MANACORE_SHARED_PACKAGES, 'lucide-svelte'],
},
test: {
environment: 'jsdom',
include: ['src/**/*.test.ts'],
globals: true,
},
define: {
...getBuildDefines(),
},
});