Newer
Older
navi-1 / webclient / vitest.config.js
import { defineConfig } from 'vitest/config'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'
import { resolve } from 'node:path'

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      // Mirror vite.config.js — src/ imports the ui-kit by bare name.
      'gnexus-ui-kit/vue': resolve(__dirname, 'vendor/gnexus-ui-kit/dist/vue/index.js'),
      'gnexus-ui-kit/css': resolve(__dirname, 'vendor/gnexus-ui-kit/dist/css/kit.css'),
    },
  },
  test: {
    environment: 'happy-dom',
    globals: true,
    include: ['tests/**/*.test.js'],
    // NOTE: DOMPurify is incompatible with happy-dom — its base
    // Node.prototype nodeName getter returns "" for elements, so
    // DOMPurify strips every tag. Tests that exercise DOMPurify
    // (useMarkdown.test.js) opt into jsdom via a @vitest-environment
    // pragma.
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
})