后端迁移测试文件
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
|
||||
import {
|
||||
classifyTencentRedeemResult,
|
||||
isCaptchaRejectedResult,
|
||||
resolveTencentRedeemMessage,
|
||||
} from './session-redeem.js'
|
||||
|
||||
test('resolveTencentRedeemMessage prefers popup detail over generic title', () => {
|
||||
assert.equal(
|
||||
resolveTencentRedeemMessage({
|
||||
popup: {
|
||||
text: '兑换结果',
|
||||
detail: '兑换码错误,请确认兑换码信息是否准确。',
|
||||
},
|
||||
}),
|
||||
'兑换码错误,请确认兑换码信息是否准确。',
|
||||
)
|
||||
})
|
||||
|
||||
test('classifyTencentRedeemResult marks used codes as replacement retries', () => {
|
||||
const result = classifyTencentRedeemResult({
|
||||
popup: {
|
||||
text: '兑换结果',
|
||||
detail: '兑换码已使用。',
|
||||
},
|
||||
})
|
||||
|
||||
assert.equal(result.outcome, 'code_used')
|
||||
assert.equal(result.success, false)
|
||||
assert.equal(result.retryWithReplacementCode, true)
|
||||
})
|
||||
|
||||
test('classifyTencentRedeemResult marks invalid codes as replacement retries', () => {
|
||||
const result = classifyTencentRedeemResult({
|
||||
popup: {
|
||||
text: '兑换结果',
|
||||
detail: '兑换码错误,请确认兑换码信息是否准确。',
|
||||
},
|
||||
})
|
||||
|
||||
assert.equal(result.outcome, 'code_invalid')
|
||||
assert.equal(result.success, false)
|
||||
assert.equal(result.retryWithReplacementCode, true)
|
||||
})
|
||||
|
||||
test('classifyTencentRedeemResult treats missing CDKEY responses as invalid replacement retries', () => {
|
||||
const result = classifyTencentRedeemResult({
|
||||
iRet: -183,
|
||||
sMsg: '该CDKEY不存在,请您确认后输入!',
|
||||
})
|
||||
|
||||
assert.equal(result.outcome, 'code_invalid')
|
||||
assert.equal(result.success, false)
|
||||
assert.equal(result.retryWithReplacementCode, true)
|
||||
})
|
||||
|
||||
test('classifyTencentRedeemResult recognizes successful gift popup', () => {
|
||||
const result = classifyTencentRedeemResult({
|
||||
popup: {
|
||||
text: '恭喜您获得了礼包:动作-干员庆生,请注意:游戏虚拟道具奖品将会在24小时内到账,请登录游戏查看邮件。',
|
||||
detail: '',
|
||||
},
|
||||
})
|
||||
|
||||
assert.equal(result.outcome, 'success')
|
||||
assert.equal(result.success, true)
|
||||
})
|
||||
|
||||
test('isCaptchaRejectedResult only treats captcha problems as same-code retries', () => {
|
||||
assert.equal(
|
||||
isCaptchaRejectedResult({
|
||||
iRet: -100,
|
||||
sMsg: '验证码错误',
|
||||
}),
|
||||
true,
|
||||
)
|
||||
|
||||
assert.equal(
|
||||
isCaptchaRejectedResult({
|
||||
popup: {
|
||||
text: '兑换结果',
|
||||
detail: '兑换码已使用。',
|
||||
},
|
||||
}),
|
||||
false,
|
||||
)
|
||||
})
|
||||
Reference in New Issue
Block a user