Files
BYW-VoiceHub/tests/server/user-archive.test.ts
T

42 lines
1.4 KiB
TypeScript

import assert from 'node:assert/strict'
import test from 'node:test'
import {
ARCHIVED_USER_STATUSES,
isArchivedStatus,
resolveArchivedFilter
} from '../../app/utils/user-archive.ts'
test('归档状态包含 graduate(限制访问-毕业生)与 withdrawn(限制访问-退学)', () => {
assert.deepEqual([...ARCHIVED_USER_STATUSES], ['graduate', 'withdrawn'])
})
test('isArchivedStatus 识别归档状态', () => {
assert.equal(isArchivedStatus('graduate'), true)
assert.equal(isArchivedStatus('withdrawn'), true)
assert.equal(isArchivedStatus('active'), false)
assert.equal(isArchivedStatus('pending'), false)
assert.equal(isArchivedStatus(null), false)
assert.equal(isArchivedStatus(undefined), false)
})
test('archived=1 解析为仅查已归档', () => {
assert.equal(resolveArchivedFilter('1'), 'archived')
assert.equal(resolveArchivedFilter('true'), 'archived')
})
test('archived=0 解析为排除已归档', () => {
assert.equal(resolveArchivedFilter('0'), 'unarchived')
assert.equal(resolveArchivedFilter('false'), 'unarchived')
})
test('缺省或未知值不限制归档', () => {
assert.equal(resolveArchivedFilter(undefined), 'all')
assert.equal(resolveArchivedFilter(''), 'all')
assert.equal(resolveArchivedFilter('yes'), 'all')
})
test('数组参数取首项解析', () => {
assert.equal(resolveArchivedFilter(['1']), 'archived')
assert.equal(resolveArchivedFilter(['0']), 'unarchived')
})