Files
atlas-seller-kit/apps/api/test/product-editor-catalog-cache.unit.test.ts

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',
);
});
});