test(platform-service): align getAllProducts test with invttrdg fallback
CI run 67 surfaced a real test failure:
src/modules/products/cache.test.ts:104
getAllProducts > returns all cached products
expected [ { id: 'lysnrai', …(11) }, …(2) ] to have a length of 2
but got 3
Root cause: cache.ts has a TEMPORARY_FALLBACK_PRODUCTS map (currently
just 'invttrdg') that getAllProducts() merges into its return value
on top of the loaded cache. The test fixture loads 2 products
(lysnrai, mindlyst), so the actual return is 3 — the test was
written before the fallback shim landed and never got updated.
Two ways to reconcile: (a) make the test reflect today's behaviour,
or (b) gut the fallback. The cache.ts comment explicitly marks
the fallback as 'TODO(platform): remove after creating the real
product …', so the right move is (a): keep the shim in place and
make the test enforce the documented contract.
- assertion now: toHaveLength(3) + .toContain('invttrdg')
- inline comment ties the expectation back to cache.ts so a
future cleanup removing the fallback will obviously need to
drop it back to 2
Verified locally:
pnpm vitest run cache.test.ts -> 8/8 pass
This commit is contained in:
parent
eed654418e
commit
cde1a0b73c
@ -9,7 +9,13 @@ vi.mock('./repository.js', () => ({
|
||||
}));
|
||||
|
||||
import { getAll } from './repository.js';
|
||||
import { loadProductCache, getProduct, isValidProduct, getAllProducts, cacheSize } from './cache.js';
|
||||
import {
|
||||
loadProductCache,
|
||||
getProduct,
|
||||
isValidProduct,
|
||||
getAllProducts,
|
||||
cacheSize,
|
||||
} from './cache.js';
|
||||
|
||||
const mockGetAll = vi.mocked(getAll);
|
||||
|
||||
@ -97,13 +103,19 @@ describe('product cache', () => {
|
||||
});
|
||||
|
||||
describe('getAllProducts', () => {
|
||||
it('returns all cached products', async () => {
|
||||
it('returns all cached products (plus temporary fallback products)', async () => {
|
||||
mockGetAll.mockResolvedValue(products);
|
||||
await loadProductCache();
|
||||
const all = getAllProducts();
|
||||
expect(all).toHaveLength(2);
|
||||
// The cache holds 2 products (lysnrai, mindlyst) and getAllProducts()
|
||||
// additionally injects entries from TEMPORARY_FALLBACK_PRODUCTS that
|
||||
// are not already in the cache. Today that set is { invttrdg }, so
|
||||
// the total is 3. When the invttrdg fallback is removed (see
|
||||
// cache.ts TODO), this expectation should drop back to 2.
|
||||
expect(all).toHaveLength(3);
|
||||
expect(all.map(p => p.id)).toContain('lysnrai');
|
||||
expect(all.map(p => p.id)).toContain('mindlyst');
|
||||
expect(all.map(p => p.id)).toContain('invttrdg');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user