统一领取流:Step1 填 UID,按平台分叉履约
领取页改为统一 UID 入口;lewan 强制角色 ID 匹配后才发货核销,feifei 将 uid 拼入 H5 并去掉 claim 短链,对外仍返回本站 claimUrl。
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
|
||||
import {
|
||||
appendUidToUrl,
|
||||
assertValidClaimUid,
|
||||
isClaimUidMatched,
|
||||
normalizeClaimUid,
|
||||
} from './claim-identity.js'
|
||||
|
||||
test('normalizeClaimUid trims and removes spaces', () => {
|
||||
assert.equal(normalizeClaimUid(' 166 909 256 '), '166909256')
|
||||
})
|
||||
|
||||
test('assertValidClaimUid accepts common game uid', () => {
|
||||
assert.equal(assertValidClaimUid('166909256'), '166909256')
|
||||
})
|
||||
|
||||
test('assertValidClaimUid rejects empty value', () => {
|
||||
assert.throws(() => assertValidClaimUid(''), /请输入游戏 UID/)
|
||||
})
|
||||
|
||||
test('isClaimUidMatched compares normalized values', () => {
|
||||
assert.equal(isClaimUidMatched('166909256', '166909256'), true)
|
||||
assert.equal(isClaimUidMatched('166909256', '999'), false)
|
||||
})
|
||||
|
||||
test('appendUidToUrl sets uid query param', () => {
|
||||
const source =
|
||||
'http://skin-exchange.yiquyou.icu/h5/bind?code=eyJpdi&product_name=%E5%A5%97%E8%A3%85'
|
||||
const next = appendUidToUrl(source, '166909256')
|
||||
const url = new URL(next)
|
||||
assert.equal(url.searchParams.get('uid'), '166909256')
|
||||
assert.equal(url.searchParams.get('code'), 'eyJpdi')
|
||||
})
|
||||
|
||||
test('appendUidToUrl overwrites existing uid', () => {
|
||||
const next = appendUidToUrl('https://example.com/h5/bind?code=abc&uid=old', 'new-uid')
|
||||
assert.equal(new URL(next).searchParams.get('uid'), 'new-uid')
|
||||
})
|
||||
Reference in New Issue
Block a user