39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import {
|
|
isRosterEmployed,
|
|
selectVisibleOrganizationPeople,
|
|
shouldAutoActivate,
|
|
} from '@/lib/auto-personnel-rules'
|
|
|
|
describe('花名册在职判定', () => {
|
|
it('只有明确离职才不算在职', () => {
|
|
expect(isRosterEmployed('RESIGNED')).toBe(false)
|
|
expect(isRosterEmployed('ACTIVE')).toBe(true)
|
|
expect(isRosterEmployed('UNKNOWN')).toBe(true)
|
|
expect(isRosterEmployed(null)).toBe(true)
|
|
expect(isRosterEmployed(undefined)).toBe(true)
|
|
})
|
|
|
|
it('自动激活跟花名册在职走同一口径', () => {
|
|
expect(shouldAutoActivate({ employmentState: 'RESIGNED' })).toBe(false)
|
|
expect(shouldAutoActivate({ employmentState: 'UNKNOWN' })).toBe(true)
|
|
expect(shouldAutoActivate(null)).toBe(false)
|
|
})
|
|
|
|
it('组织架构默认名单不带离职的人,也不看账号是否还启用', () => {
|
|
const people = [
|
|
{ name: '在职且账号启用', employmentState: 'ACTIVE', isActive: true },
|
|
{ name: '离职但账号还没归档', employmentState: 'RESIGNED', isActive: true },
|
|
{ name: '离职且账号已关', employmentState: 'RESIGNED', isActive: false },
|
|
{ name: '在职但账号停用', employmentState: 'ACTIVE', isActive: false },
|
|
{ name: '状态未知', employmentState: 'UNKNOWN', isActive: true },
|
|
]
|
|
|
|
expect(selectVisibleOrganizationPeople(people).map((p) => p.name)).toEqual([
|
|
'在职且账号启用',
|
|
'在职但账号停用',
|
|
'状态未知',
|
|
])
|
|
expect(selectVisibleOrganizationPeople(people, true)).toHaveLength(5)
|
|
})
|
|
})
|