072284b846
- 游戏管理页:下架改为独立面板(原因必填、校验提示、仍走二次确认),操作列与作者列排版调整,gameId 省略号加 title - 游戏管理页测试:拆成空原因不提交、面板取消不请求、面板确认后仍需二次确认三条 - 审核页:移除行内游戏级安全下架及其状态与二次确认接线,理由弹窗只服务拒绝,gameId 截断加 title - 审核页测试:删除两条安全下架用例,替换为行内无该动作、microsZ 时间列渲染、窄视口 gameId 截断 - 新增 adminGameDistributionReview.css:审核页专属列宽与动作列 nowrap,含 1366/980 两档断点 - admin-web admin.css:新增游戏管理表格 5 条排版规则 - shared AdminFormat:新增 normalizeAdminTimestamp,兼容后端 seconds.microsZ 时间口径 - shared AdminFormat 测试:新增 5 条覆盖微秒口径、补零、ISO 与 epoch 兼容、非法值回落 - shared admin.css:admin-status 改为 nowrap - 文档:后台游戏审核详情计划加取代标注,说明审核页只承载版本级动作
47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
import { describe, expect, test } from 'vitest';
|
|
|
|
import { formatAdminDate, formatAdminDateTime } from './AdminFormat';
|
|
|
|
describe('formatAdminDateTime', () => {
|
|
test('把后端的 seconds.microsZ 口径当成同一时刻渲染', () => {
|
|
// 游戏分发后台接口下发的是 shared-kernel `format_timestamp_micros` 的
|
|
// `seconds.microsZ` 文本(非 ISO 8601),必须与等价 ISO 时刻渲染一致。
|
|
const microsText = '1791008678.817257Z';
|
|
const equivalentIso = new Date(1791008678 * 1000 + 817).toISOString();
|
|
|
|
expect(formatAdminDateTime(microsText)).toBe(
|
|
formatAdminDateTime(equivalentIso),
|
|
);
|
|
expect(formatAdminDateTime(microsText)).not.toBe('-');
|
|
});
|
|
|
|
test('微秒位数不足时按毫秒补零,而不是丢位', () => {
|
|
expect(formatAdminDateTime('1791008678.8Z')).toBe(
|
|
formatAdminDateTime(new Date(1791008678 * 1000 + 800).toISOString()),
|
|
);
|
|
});
|
|
|
|
test('ISO 字符串、epoch 毫秒与 Date 仍按原语义渲染', () => {
|
|
const iso = '2026-09-20T08:00:00Z';
|
|
expect(formatAdminDateTime(iso)).toBe(formatAdminDateTime(new Date(iso)));
|
|
expect(formatAdminDateTime(Date.parse(iso))).toBe(
|
|
formatAdminDateTime(new Date(iso)),
|
|
);
|
|
});
|
|
|
|
test('无法解析的值回落 fallback', () => {
|
|
expect(formatAdminDateTime('not-a-time')).toBe('-');
|
|
expect(formatAdminDateTime('')).toBe('-');
|
|
expect(formatAdminDateTime(null)).toBe('-');
|
|
});
|
|
});
|
|
|
|
describe('formatAdminDate', () => {
|
|
test('同样接受 seconds.microsZ 口径', () => {
|
|
expect(formatAdminDate('1791008678.817257Z')).toBe(
|
|
formatAdminDate(new Date(1791008678 * 1000 + 817).toISOString()),
|
|
);
|
|
expect(formatAdminDate('1791008678.817257Z')).not.toBe('-');
|
|
});
|
|
});
|