Files
BYW-VoiceHub/tests/server/grade-class-input.test.ts
T

32 lines
1.1 KiB
TypeScript

import assert from 'node:assert/strict'
import test from 'node:test'
import { parseClassInput } from '../../app/utils/grade-class-input.ts'
test('数字区间生成对应数量的班名', () => {
assert.deepEqual(parseClassInput('1-3'), ['1班', '2班', '3班'])
assert.deepEqual(parseClassInput('1-1'), ['1班'])
})
test('逗号分隔与区间可混合使用并去重', () => {
const result = parseClassInput('一班,3-4,一班')
assert.deepEqual(result, ['一班', '3班', '4班'])
})
test('支持中文/英文逗号、换行、分号分隔', () => {
assert.deepEqual(parseClassInput('一班,二班\n三班;4-5'), ['一班', '二班', '三班', '4班', '5班'])
})
test('非法区间按字面保留', () => {
assert.deepEqual(parseClassInput('5-3'), ['5-3'])
assert.deepEqual(parseClassInput('一-三'), ['一-三'])
})
test('超长区间按字面保留(上限 100 防呆)', () => {
const result = parseClassInput('1-101')
assert.deepEqual(result, ['1-101'])
})
test('空输入与非字符串返回空数组', () => {
assert.deepEqual(parseClassInput(''), [])
assert.deepEqual(parseClassInput(undefined), [])
})