Files
crawler-plugin/admin-frontend-vue/tests/align-invalid-asin-lock.test.ts
T

39 lines
1.7 KiB
TypeScript

import test from 'node:test'
import assert from 'node:assert/strict'
import { readSource } from './helpers.ts'
import { invalidAsinLockedGroupId } from '../src/pages/invalidasin/invalid-asin-model.ts'
/** 对齐 admin.js:4200-4204,4246-4272:非超管品牌数据库分组强制锁定到本人分组。 */
const GROUPS = [{ id: 3, groupName: 'A组' }, { id: 5, groupName: 'B组' }]
test('align_invalid_asin_lock_super_admin_never_locked', () => {
assert.equal(invalidAsinLockedGroupId(GROUPS, 3, 'super_admin'), null)
})
test('align_invalid_asin_lock_uses_locked_group_id_when_present', () => {
assert.equal(invalidAsinLockedGroupId(GROUPS, 5, 'admin'), 5)
})
test('align_invalid_asin_lock_falls_back_to_first_group', () => {
assert.equal(invalidAsinLockedGroupId(GROUPS, null, 'admin'), 3)
assert.equal(invalidAsinLockedGroupId(GROUPS, 99, 'admin'), 3)
})
test('align_invalid_asin_lock_empty_groups_returns_null', () => {
assert.equal(invalidAsinLockedGroupId([], null, 'admin'), null)
})
test('align_invalid_asin_lock_normal_role_also_locked', () => {
assert.equal(invalidAsinLockedGroupId(GROUPS, null, 'normal'), 3)
})
test('align_invalid_asin_page_lock_wiring', () => {
// UI 接线:筛选/新增/编辑分组下拉非超管禁用并锁定;筛选默认锁组;重置保持锁定。
const page = readSource('src/pages/asin/AsinInvalidPage.vue')
assert.match(page, /invalidAsinLockedGroupId/, '锁定分组走纯模型')
assert.match(page, /isSuperAdmin|session\.isSuperAdmin/, '按当前角色判定是否锁定')
assert.match(page, /:disabled/, '分组下拉支持禁用')
assert.match(page, /lockedGroupId/, '锁定组参与筛选/新增预置')
})