45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import { describe, it } from 'vitest';
|
|
import { productCatalogCacheStatus } from '../src/product-editor/product-editor.catalog-cache.js';
|
|
|
|
describe('商品编辑器平台目录新鲜度边界', () => {
|
|
const day = 86_400_000;
|
|
const now = Date.parse('2026-09-20T00:00:00.000Z');
|
|
|
|
it('从未成功同步时为 missing', () => {
|
|
assert.equal(productCatalogCacheStatus(null, 14, 21, now), 'missing');
|
|
});
|
|
|
|
it('14 天前为 fresh,恰好 14 天进入 stale', () => {
|
|
assert.equal(
|
|
productCatalogCacheStatus(
|
|
new Date(now - 14 * day + 1),
|
|
14,
|
|
21,
|
|
now,
|
|
),
|
|
'fresh',
|
|
);
|
|
assert.equal(
|
|
productCatalogCacheStatus(new Date(now - 14 * day), 14, 21, now),
|
|
'stale',
|
|
);
|
|
});
|
|
|
|
it('恰好 21 天仍 stale,严格超过才 expired', () => {
|
|
assert.equal(
|
|
productCatalogCacheStatus(new Date(now - 21 * day), 14, 21, now),
|
|
'stale',
|
|
);
|
|
assert.equal(
|
|
productCatalogCacheStatus(
|
|
new Date(now - 21 * day - 1),
|
|
14,
|
|
21,
|
|
now,
|
|
),
|
|
'expired',
|
|
);
|
|
});
|
|
});
|