feat: add TypeORM, logger, schemas, hooks and stores
- Add TypeORM integration with data-source, entities and repositories - Add logger service for structured logging - Add Zod validation schemas for auth, cleaner and extractor - Add custom React hooks (useAuth, useCleaner, useExtractor, useValidation) - Add Zustand stores (useAppStore, useUserStore) - Add UI components (Button, Modal, Toast) - Add error types and ErpBrowserManager - Refactor IPC handlers and services - Add unit tests for new modules Co-Authored-By: Claude (glm-5) <noreply@anthropic.com>
This commit is contained in:
67
tests/unit/repositories.test.ts
Normal file
67
tests/unit/repositories.test.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
/**
|
||||
* Repository Unit Tests
|
||||
*
|
||||
* Tests for TypeORM repository patterns.
|
||||
* Note: These tests mock the database connections.
|
||||
*/
|
||||
|
||||
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
||||
|
||||
// Mock TypeORM
|
||||
vi.mock('typeorm', () => ({
|
||||
DataSource: vi.fn(() => ({
|
||||
initialize: vi.fn().mockResolvedValue({}),
|
||||
isInitialized: false,
|
||||
getRepository: vi.fn(),
|
||||
destroy: vi.fn()
|
||||
})),
|
||||
Repository: vi.fn(),
|
||||
In: vi.fn((arr) => arr)
|
||||
}))
|
||||
|
||||
vi.mock('../../src/main/services/logger', () => ({
|
||||
createLogger: vi.fn(() => ({
|
||||
info: vi.fn(),
|
||||
error: vi.fn(),
|
||||
warn: vi.fn(),
|
||||
debug: vi.fn()
|
||||
}))
|
||||
}))
|
||||
|
||||
describe('MaterialsToBeDeletedRepository', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
})
|
||||
|
||||
it('should be defined', async () => {
|
||||
const { MaterialsToBeDeletedRepository } =
|
||||
await import('../../src/main/services/database/repositories/MaterialsToBeDeletedRepository')
|
||||
expect(MaterialsToBeDeletedRepository).toBeDefined()
|
||||
})
|
||||
|
||||
it('should create repository instance', async () => {
|
||||
const { MaterialsToBeDeletedRepository } =
|
||||
await import('../../src/main/services/database/repositories/MaterialsToBeDeletedRepository')
|
||||
const repo = new MaterialsToBeDeletedRepository()
|
||||
expect(repo).toBeDefined()
|
||||
})
|
||||
})
|
||||
|
||||
describe('DiscreteMaterialPlanRepository', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
})
|
||||
|
||||
it('should be defined', async () => {
|
||||
const { DiscreteMaterialPlanRepository } =
|
||||
await import('../../src/main/services/database/repositories/DiscreteMaterialPlanRepository')
|
||||
expect(DiscreteMaterialPlanRepository).toBeDefined()
|
||||
})
|
||||
|
||||
it('should create repository instance', async () => {
|
||||
const { DiscreteMaterialPlanRepository } =
|
||||
await import('../../src/main/services/database/repositories/DiscreteMaterialPlanRepository')
|
||||
const repo = new DiscreteMaterialPlanRepository()
|
||||
expect(repo).toBeDefined()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user