- 修复返利不到账的根因:tryClaimAffiliateRebateAudit 中 PostgreSQL 参数类型推断冲突 - 补全 OAuth 注册路径(LinuxDo/OIDC/WeChat/Pending Flow)的邀请码绑定 - 前端 OAuth 注册页面传递 aff_code 参数 - 新增返利冻结期机制:可配置冻结时间,到期后自动解冻(懒解冻) - 新增返利有效期:绑定后 N 天内有效,过期不再产生返利 - 新增单人返利上限:超出上限部分精确截断 - 增强返利流程 slog 结构化日志,便于排查问题 - 已邀请用户列表增加返利明细列
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
import {
|
|
clearAffiliateReferralCode,
|
|
clearOAuthAffiliateCode,
|
|
loadAffiliateReferralCode,
|
|
loadOAuthAffiliateCode,
|
|
resolveAffiliateReferralCode,
|
|
storeAffiliateReferralCode,
|
|
storeOAuthAffiliateCode
|
|
} from '@/utils/oauthAffiliate'
|
|
|
|
describe('oauthAffiliate', () => {
|
|
beforeEach(() => {
|
|
localStorage.clear()
|
|
sessionStorage.clear()
|
|
vi.useRealTimers()
|
|
})
|
|
|
|
it('persists affiliate referral code across pages', () => {
|
|
expect(resolveAffiliateReferralCode(' 5579J7CFG9PF ')).toBe('5579J7CFG9PF')
|
|
expect(loadAffiliateReferralCode()).toBe('5579J7CFG9PF')
|
|
expect(resolveAffiliateReferralCode()).toBe('5579J7CFG9PF')
|
|
})
|
|
|
|
it('expires stale affiliate referral code', () => {
|
|
const now = Date.UTC(2026, 0, 1)
|
|
storeAffiliateReferralCode('AFF123', now)
|
|
|
|
expect(loadAffiliateReferralCode(now + 30 * 24 * 60 * 60 * 1000 - 1)).toBe('AFF123')
|
|
expect(loadAffiliateReferralCode(now + 30 * 24 * 60 * 60 * 1000 + 1)).toBe('')
|
|
expect(localStorage.getItem('affiliate_referral_code')).toBeNull()
|
|
})
|
|
|
|
it('keeps oauth transient code separate from persistent referral code', () => {
|
|
storeAffiliateReferralCode('PERSISTED')
|
|
storeOAuthAffiliateCode('OAUTH')
|
|
|
|
expect(loadAffiliateReferralCode()).toBe('PERSISTED')
|
|
expect(loadOAuthAffiliateCode()).toBe('OAUTH')
|
|
|
|
clearOAuthAffiliateCode()
|
|
expect(loadOAuthAffiliateCode()).toBe('')
|
|
expect(loadAffiliateReferralCode()).toBe('PERSISTED')
|
|
|
|
clearAffiliateReferralCode()
|
|
expect(loadAffiliateReferralCode()).toBe('')
|
|
})
|
|
})
|