- 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>
41 lines
1.1 KiB
TypeScript
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)
|
|
})
|
|
})
|