test(users): cover permission role activation
This commit is contained in:
parent
e5985cf4cd
commit
58fa0c7133
@ -4,6 +4,7 @@ import { logRepository } from '../../repositories/log.repository'
|
||||
import { userService } from '../user.service'
|
||||
import { departmentService } from '../department.service'
|
||||
import { externalEmployeeDirectoryService } from '../external-employee-directory.service'
|
||||
import { permissionRoleService } from '../permission-role.service'
|
||||
|
||||
jest.mock('../../repositories/log.repository', () => ({
|
||||
logRepository: {
|
||||
@ -33,11 +34,18 @@ jest.mock('../external-employee-directory.service', () => ({
|
||||
},
|
||||
}))
|
||||
|
||||
jest.mock('../permission-role.service', () => ({
|
||||
permissionRoleService: {
|
||||
assertAssignable: jest.fn(),
|
||||
},
|
||||
}))
|
||||
|
||||
describe('userManagementService.activateUser', () => {
|
||||
const mockedLogRepository = jest.mocked(logRepository)
|
||||
const mockedUserService = jest.mocked(userService)
|
||||
const mockedDepartmentService = jest.mocked(departmentService)
|
||||
const mockedExternalEmployeeDirectoryService = jest.mocked(externalEmployeeDirectoryService)
|
||||
const mockedPermissionRoleService = jest.mocked(permissionRoleService)
|
||||
|
||||
const adminUser = {
|
||||
id: 'admin-1',
|
||||
@ -115,6 +123,7 @@ describe('userManagementService.activateUser', () => {
|
||||
expect(mockedUserService.update).toHaveBeenCalledWith('user-pending', {
|
||||
role: 'USER',
|
||||
businessRoles: ['DESIGN'],
|
||||
permissionRoleId: null,
|
||||
departmentId: 'dept-a',
|
||||
teamId: null,
|
||||
status: 'ACTIVE',
|
||||
@ -160,6 +169,7 @@ describe('userManagementService.activateUser', () => {
|
||||
expect(mockedUserService.update).toHaveBeenCalledWith('user-pending', {
|
||||
role: 'USER',
|
||||
businessRoles: ['DESIGN'],
|
||||
permissionRoleId: null,
|
||||
departmentId: 'dept-a',
|
||||
teamId: null,
|
||||
status: 'ACTIVE',
|
||||
@ -168,6 +178,47 @@ describe('userManagementService.activateUser', () => {
|
||||
expect(result.businessRoles).toEqual(['DESIGN'])
|
||||
})
|
||||
|
||||
it('激活时选择自定义岗位会清空旧业务类型并写入岗位关联', async () => {
|
||||
mockedUserService.getById.mockResolvedValue({
|
||||
id: 'user-pending',
|
||||
email: 'pending@example.com',
|
||||
name: '待激活用户',
|
||||
role: 'USER',
|
||||
businessRoles: ['DESIGN'],
|
||||
permissionRoleId: null,
|
||||
status: 'PENDING',
|
||||
departmentId: 'dept-a',
|
||||
teamId: null,
|
||||
} as never)
|
||||
mockedUserService.update.mockResolvedValue({
|
||||
id: 'user-pending',
|
||||
email: 'pending@example.com',
|
||||
name: '待激活用户',
|
||||
role: 'USER',
|
||||
businessRoles: [],
|
||||
permissionRoleId: 'role-custom-1',
|
||||
status: 'ACTIVE',
|
||||
departmentId: 'dept-a',
|
||||
teamId: null,
|
||||
} as never)
|
||||
|
||||
await userManagementService.activateUser(
|
||||
'user-pending',
|
||||
{ businessRoles: ['DESIGN'], permissionRoleId: 'role-custom-1' },
|
||||
adminUser,
|
||||
)
|
||||
|
||||
expect(mockedPermissionRoleService.assertAssignable).toHaveBeenCalledWith('role-custom-1')
|
||||
expect(mockedUserService.update).toHaveBeenCalledWith('user-pending', {
|
||||
role: 'USER',
|
||||
businessRoles: [],
|
||||
permissionRoleId: 'role-custom-1',
|
||||
departmentId: 'dept-a',
|
||||
teamId: null,
|
||||
status: 'ACTIVE',
|
||||
})
|
||||
})
|
||||
|
||||
it('主管不能把待激活账号激活成同级角色', async () => {
|
||||
mockedUserService.getById.mockResolvedValue({
|
||||
id: 'user-pending',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user