fix(quota): align reset countdown with Management Center
This commit is contained in:
1 parent
e409bfaf7c
commit
b7e6504617
2 files changed
+15
-3
No files matched your search
@@ -44,10 +44,10 @@ export const formatQuotaReset = (
|
||||
}).format(resetAtMs);
|
||||
const delta = resetAtMs - nowMs;
|
||||
if (delta <= 0) return `${absolute} · ${translate(locale, 'quota.resetPassed')}`;
|
||||
const minutes = Math.max(1, Math.ceil(delta / 60000));
|
||||
const minutes = Math.max(1, Math.floor(delta / 60000));
|
||||
const relative = new Intl.RelativeTimeFormat(locale, { numeric: 'always' });
|
||||
const label = minutes >= 1440 ? relative.format(Math.ceil(minutes / 1440), 'day')
|
||||
: minutes >= 60 ? relative.format(Math.ceil(minutes / 60), 'hour')
|
||||
const label = minutes >= 1440 ? relative.format(Math.floor(minutes / 1440), 'day')
|
||||
: minutes >= 60 ? relative.format(Math.floor(minutes / 60), 'hour')
|
||||
: relative.format(minutes, 'minute');
|
||||
return `${absolute} · ${label}`;
|
||||
};
|
||||
|
||||
@@ -28,4 +28,16 @@ describe('quota reset instants', () => {
|
||||
expect(formatQuotaReset(resetMs, undefined, 'zh-CN', resetMs)).toContain('重置时间已到,请刷新确认');
|
||||
expect(formatQuotaReset(undefined, 'legacy', 'en', resetMs)).toBe('legacy');
|
||||
});
|
||||
|
||||
it('与管理中心一致,按完整天、小时和分钟向下计算剩余时间', () => {
|
||||
const absolute = new Intl.DateTimeFormat('zh-CN', {
|
||||
month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', hour12: false,
|
||||
}).format(resetMs);
|
||||
expect(formatQuotaReset(resetMs, undefined, 'zh-CN', resetMs - 36 * 60 * 60 * 1000)).toBe(`${absolute} · 1天后`);
|
||||
expect(formatQuotaReset(resetMs, undefined, 'zh-CN', resetMs - 24 * 60 * 60 * 1000)).toBe(`${absolute} · 1天后`);
|
||||
expect(formatQuotaReset(resetMs, undefined, 'zh-CN', resetMs - (24 * 60 * 60 * 1000 - 1))).toBe(`${absolute} · 23小时后`);
|
||||
expect(formatQuotaReset(resetMs, undefined, 'zh-CN', resetMs - 60 * 60 * 1000)).toBe(`${absolute} · 1小时后`);
|
||||
expect(formatQuotaReset(resetMs, undefined, 'zh-CN', resetMs - (60 * 60 * 1000 - 1))).toBe(`${absolute} · 59分钟后`);
|
||||
expect(formatQuotaReset(resetMs, undefined, 'zh-CN', resetMs - 1000)).toBe(`${absolute} · 1分钟后`);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user