Files
order_site/apps/frontend/tests/announcement-ack.test.ts
T

55 lines
1.8 KiB
TypeScript

import assert from 'node:assert/strict'
import test from 'node:test'
import {
resolveAnnouncementVersion,
shouldShowAnnouncementPopup,
} from '../src/utils/announcement-ack.ts'
test('公告版本:内容不变版本不变,忽略首尾空白', () => {
const version = resolveAnnouncementVersion('平台担保交易,拒绝私下转账')
assert.ok(version.startsWith('v1-'))
assert.equal(resolveAnnouncementVersion(' 平台担保交易,拒绝私下转账 '), version)
})
test('公告版本:内容变化即新版本,空内容没有版本', () => {
const before = resolveAnnouncementVersion('旧公告')
const after = resolveAnnouncementVersion('旧公告(已更新)')
assert.notEqual(before, after)
assert.equal(resolveAnnouncementVersion(''), '')
assert.equal(resolveAnnouncementVersion(' '), '')
})
test('弹窗判定:关闭/空正文不弹', () => {
assert.equal(
shouldShowAnnouncementPopup({ enabled: false, content: '公告内容', acknowledgedVersion: '' }),
false,
)
assert.equal(
shouldShowAnnouncementPopup({ enabled: true, content: '', acknowledgedVersion: '' }),
false,
)
assert.equal(shouldShowAnnouncementPopup({ content: '公告内容' }), false)
})
test('弹窗判定:未确认真弹,确认过同一版本不再弹,改内容后重新弹', () => {
const content = '严禁私下交易'
const version = resolveAnnouncementVersion(content)
assert.equal(
shouldShowAnnouncementPopup({ enabled: true, content, acknowledgedVersion: '' }),
true,
)
assert.equal(
shouldShowAnnouncementPopup({ enabled: true, content, acknowledgedVersion: version }),
false,
)
assert.equal(
shouldShowAnnouncementPopup({
enabled: true,
content: '严禁私下交易(2026-10-25 更新)',
acknowledgedVersion: version,
}),
true,
)
})