an atproto based link aggregator
at main 1.6 kB view raw
1import { defineConfig } from 'vitest/config'; 2import { playwright } from '@vitest/browser-playwright'; 3import { sveltekit } from '@sveltejs/kit/vite'; 4import tailwindcss from '@tailwindcss/vite'; 5 6// Use system chromium if PLAYWRIGHT_CHROMIUM_PATH is set (for CI with nixpkgs) 7const chromiumPath = process.env.PLAYWRIGHT_CHROMIUM_PATH; 8// Skip browser tests in CI (set SKIP_BROWSER_TESTS=1) 9const skipBrowserTests = process.env.SKIP_BROWSER_TESTS === '1'; 10 11export default defineConfig({ 12 plugins: [tailwindcss(), sveltekit()], 13 ssr: { 14 // Externalize native libsql modules - they can't be bundled 15 external: ['libsql', '@libsql/linux-x64-gnu', '@libsql/linux-x64-musl'] 16 }, 17 test: { 18 expect: { requireAssertions: true }, 19 projects: [ 20 // Only include browser project if not skipping 21 ...(skipBrowserTests 22 ? [] 23 : [ 24 { 25 extends: './vite.config.ts', 26 test: { 27 name: 'client', 28 browser: { 29 enabled: true, 30 provider: playwright({ 31 launchOptions: chromiumPath 32 ? { 33 executablePath: chromiumPath, 34 args: ['--no-sandbox', '--disable-setuid-sandbox'] 35 } 36 : {} 37 }), 38 instances: [{ browser: 'chromium' as const, headless: true }] 39 }, 40 include: ['src/**/*.svelte.{test,spec}.{js,ts}'], 41 exclude: ['src/lib/server/**'] 42 } 43 } 44 ]), 45 { 46 extends: './vite.config.ts', 47 test: { 48 name: 'server', 49 environment: 'node', 50 include: ['src/**/*.{test,spec}.{js,ts}'], 51 exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] 52 } 53 } 54 ] 55 } 56});