This commit is contained in:
2026-08-14 16:06:33 +08:00
parent 09e44e6520
commit 610cc1abf9
17 changed files with 135 additions and 41 deletions
@@ -123,12 +123,20 @@ test('implements member list, role assignment, password reset and status control
assert.doesNotMatch(membersSource, /<DataTable[^>]*:loading="loading"/)
assert.match(membersSource, /fixed: 'left'/)
assert.match(membersSource, /class="table-actions"/)
assert.doesNotMatch(membersSource, /template #actions><el-button v-if="auth\.hasPermission\('company:member:write'\)/)
assert.match(membersSource, /canCreateMember.*company:member:create/)
assert.match(membersSource, /canEditMember.*company:member:edit/)
assert.match(membersSource, /canGrantMemberRole.*company:member:grant-role/)
assert.match(membersSource, /canChangeMemberStatus.*company:member:status/)
assert.doesNotMatch(membersSource, /company:member:write/)
assert.doesNotMatch(membersSource, /member-metrics/)
})
test('protects built-in roles and exposes role permission assignment', () => {
assert.match(rolesSource, /auth\.hasPermission\('company:role:write'\).*\.builtin/)
assert.match(rolesSource, /canCreateRole.*company:role:create/)
assert.match(rolesSource, /canEditRole.*company:role:edit/)
assert.match(rolesSource, /canChangeRoleStatus.*company:role:status/)
assert.match(rolesSource, /canDeleteRole.*company:role:delete/)
assert.doesNotMatch(rolesSource, /company:role:write/)
assert.match(rolesSource, /function assignPermissions\(role: TenantRole\)/)
assert.match(storeSource, /if \(role\.builtin\) throw new Error\('内置角色不能删除'\)/)
assert.match(storeSource, /if \(members\.value\.some\(\(member\) => member\.roleIds\.includes\(id\)\)\)/)
@@ -152,15 +160,19 @@ test('protects built-in roles and exposes role permission assignment', () => {
assert.doesNotMatch(rolesSource, /<DataTable[^>]*:loading="loading"/)
assert.match(rolesSource, /fixed: 'left'/)
assert.match(rolesSource, /class="table-actions"/)
assert.doesNotMatch(rolesSource, /template #actions><el-button v-if="auth\.hasPermission\('company:role:write'\)/)
assert.match(rolesSource, /canEditRole && !\(row as TenantRole\)\.builtin/)
assert.doesNotMatch(rolesSource, /role-guidance/)
})
test('shows company audit status and applies button permissions', () => {
assert.match(profileSource, /companyApproved/)
assert.match(profileSource, /ARCHIVED: \{ title: '企业已归档'/)
assert.match(profileSource, /auditStatus !== 'ARCHIVED'/)
assert.match(profileSource, /企业资料正在等待平台审核/)
assert.match(profileSource, /auth\.hasPermission\('company:profile:edit'\)/)
assert.match(membersSource, /auth\.hasPermission\('company:member:write'\)/)
assert.match(membersSource, /company:member:create/)
assert.match(membersSource, /company:member:edit/)
assert.match(membersSource, /company:member:status/)
assert.match(permissionsSource, /auth\.hasPermission\('company:permission:assign'\)/)
assert.match(storeSource, /auditStatus: 'PROFILE_REQUIRED'/)
assert.match(storeSource, /loadCompanyContext/)