refactor: Extract reusable UI components and add TDD documentation

- Add comprehensive TDD documentation to CLAUDE.md with coverage requirements and examples
- Extract reusable UI components to frontend/src/components/ui/ (Modal, FormInput, Button, Alert, etc.)
- Add shared constants (schedulePresets) and utility hooks (useCrudMutation, useFormValidation)
- Update frontend/CLAUDE.md with component documentation and usage examples
- Refactor CreateTaskModal to use shared components and constants
- Fix test assertions to be more robust and accurate across all test files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-10 15:27:27 -05:00
parent 18c9a69d75
commit 8c52d6a275
48 changed files with 2780 additions and 444 deletions

View File

@@ -137,13 +137,12 @@ describe('useResources hooks', () => {
expect(apiClient.post).toHaveBeenCalledWith('/resources/', {
name: 'New Room',
type: 'ROOM',
user: null,
timezone: 'UTC',
user_id: null,
max_concurrent_events: 3,
});
});
it('converts userId to user integer', async () => {
it('converts userId to user_id integer', async () => {
vi.mocked(apiClient.post).mockResolvedValue({ data: { id: 1 } });
const { result } = renderHook(() => useCreateResource(), {
@@ -159,7 +158,7 @@ describe('useResources hooks', () => {
});
expect(apiClient.post).toHaveBeenCalledWith('/resources/', expect.objectContaining({
user: 42,
user_id: 42,
}));
});
});