Files
BIPMaterialManager/tests/fixtures/user-factory.test.ts
Misaka fb3dd43164 test: add Wave 1 infrastructure (types, mocks, vitest config) + User/Order/Material factories
- tests/fixtures/types.ts: Test fixture type definitions
- tests/fixtures/factory.ts: User/Order/Material factories
- tests/mocks/types.ts: Mock type definitions (549 lines)
- tests/mocks/index.ts: Mock factory functions
- vitest.config.ts: Performance optimizations (isolate:false, pool:threads)
- User/Order/Material factory tests (7 tests total)

Performance: 7.65s → 4.94s (35% improvement)
2026-04-04 20:15:54 +08:00

36 lines
994 B
TypeScript

/**
* UserFactory Unit Tests
*/
import { describe, it, expect } from 'vitest'
import { UserFactory } from './factory'
describe('UserFactory', () => {
it('creates user with default role', () => {
const user = UserFactory.createUser()
expect(user.username).toMatch(/^test_user_\d+$/)
expect(user.userType).toBe('User')
expect(user.permissions).toEqual(['read', 'write'])
expect(user.id).toMatch(/^USR-\d+-[a-z0-9]+$/)
})
it('creates admin with correct permissions', () => {
const admin = UserFactory.createAdmin()
expect(admin.userType).toBe('Admin')
expect(admin.permissions).toEqual(['read', 'write', 'delete', 'admin'])
expect(admin.id).toMatch(/^USR-\d+-[a-z0-9]+$/)
})
it('generates unique IDs', () => {
const id1 = UserFactory.createAdmin().id
const id2 = UserFactory.createUser().id
const id3 = UserFactory.createGuest().id
expect(id1).not.toBe(id2)
expect(id2).not.toBe(id3)
expect(id1).not.toBe(id3)
})
})