Files
BIPMaterialManager/tests/fixtures/user-factory.test.ts
Misaka 4150a13175 fix(test): improve test isolation and reduce noise in unit tests
- Add logger/error-utils mocks to cleaner-handler test to suppress IPC error log noise
- Move setupServiceMocks into beforeEach for consistent default mocking in cleaner tests
- Replace vi.waitFor (2s timeout) with setImmediate microtask flush in extractor test
- Remove dead activeType assignments in validation-database test
- Align TestUser.id type with UserInfo.id (string → number) and use deterministic counter

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 21:38:20 +08:00

41 lines
1.1 KiB
TypeScript

/**
* UserFactory Unit Tests
*/
import { describe, it, expect, beforeEach } from 'vitest'
import { UserFactory } from './factory'
describe('UserFactory', () => {
beforeEach(() => {
// Reset ID counter to ensure test isolation
;(UserFactory as any).idCounter = 0
})
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).toBeTypeOf('number')
})
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).toBeTypeOf('number')
})
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)
})
})