Files
api/web/test/mocks/pinia.ts
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

30 lines
707 B
TypeScript

import { vi } from 'vitest';
// Mock Pinia
vi.mock('pinia', async () => {
const actual = await vi.importActual('pinia');
return {
...actual,
defineStore: vi.fn((id, setup) => {
const setupFn = typeof setup === 'function' ? setup : setup.setup;
return vi.fn(() => {
try {
const store = setupFn();
return {
...store,
$reset: vi.fn(),
$patch: vi.fn(),
};
} catch (e) {
console.error(`Error creating store ${id}:`, e);
return {
$reset: vi.fn(),
$patch: vi.fn(),
};
}
});
}),
storeToRefs: vi.fn((store) => store || {}),
};
});