Files
moreminimore-vibe/src/__tests__/README.md
2025-05-06 23:02:28 -07:00

78 lines
1.6 KiB
Markdown

# Test Documentation
This directory contains unit tests for the Dyad application.
## Testing Setup
We use [Vitest](https://vitest.dev/) as our testing framework, which is designed to work well with Vite and modern JavaScript.
### Test Commands
Add these commands to your `package.json`:
```json
"test": "vitest run",
"test:watch": "vitest",
"test:ui": "vitest --ui"
```
- `npm run test` - Run tests once
- `npm run test:watch` - Run tests in watch mode (rerun when files change)
- `npm run test:ui` - Run tests with UI reporter
## Mocking Guidelines
### Mocking fs module
When mocking the `node:fs` module, use a default export in the mock:
```typescript
vi.mock("node:fs", async () => {
return {
default: {
mkdirSync: vi.fn(),
writeFileSync: vi.fn(),
// Add other fs methods as needed
},
};
});
```
### Mocking isomorphic-git
When mocking isomorphic-git, provide a default export:
```typescript
vi.mock("isomorphic-git", () => ({
default: {
add: vi.fn().mockResolvedValue(undefined),
commit: vi.fn().mockResolvedValue(undefined),
// Add other git methods as needed
},
}));
```
### Testing IPC Handlers
When testing IPC handlers, mock the Electron IPC system:
```typescript
vi.mock("electron", () => ({
ipcMain: {
handle: vi.fn(),
on: vi.fn(),
},
}));
```
## Adding New Tests
1. Create a new file with the `.test.ts` or `.spec.ts` extension
2. Import the functions you want to test
3. Mock any dependencies using `vi.mock()`
4. Write your test cases using `describe()` and `it()`
## Example
See `chat_stream_handlers.test.ts` for an example of testing IPC handlers with proper mocking.