Files
api/web/vitest.config.mjs
Michael Datelle 0e008aaf1e test: setup initial test, config and testing libraries (#1309)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced comprehensive testing utilities for Vue components
utilizing the composition API.
- Enhanced testing coverage for the `DownloadApiLogs` and `KeyActions`
components, ensuring robust functionality and user interaction
validation.
- Added mock implementations for various libraries and components to
facilitate isolated unit testing.
- Improved flexibility in the `DummyServerSwitcher` component's input
handling.
- Added a new test setup file to configure the testing environment for
Vue applications.
- Added new test files for `AuthComponent` and `KeyActions` with
comprehensive test cases.
- Introduced a new mock implementation for UI components to streamline
testing.
- Added a new mock implementation for the `useRequest` composable to
prevent hanging issues during tests.
- Added a new mock implementation for the server store used by the Auth
component.

- **Bug Fixes**
- Improved sanitization process to block inline styles for a safer and
more consistent display.

- **Documentation**
- Added README documentation for Vue Component Testing Utilities,
detailing usage and examples.
  - Updated ESLint configuration to ignore coverage directory files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-04-03 15:50:49 -04:00

36 lines
817 B
JavaScript

import { fileURLToPath } from 'node:url';
import vue from '@vitejs/plugin-vue';
import { defineConfig } from 'vitest/config';
export default defineConfig({
plugins: [vue()],
test: {
environment: 'jsdom',
server: {
deps: {
inline: [/.*\.mjs$/],
interopDefault: true,
registerNodeLoader: true,
},
},
setupFiles: ['./test/setup.ts'],
globals: true,
mockReset: true,
clearMocks: true,
restoreMocks: true,
include: [
'test/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}',
'helpers/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}',
],
testTimeout: 5000,
hookTimeout: 5000,
},
resolve: {
alias: {
'~': fileURLToPath(new URL('.', import.meta.url)),
'@': fileURLToPath(new URL('.', import.meta.url)),
},
},
});