feat: enqueue pricing refresh jobs
Quality / test (push) Canceled after 0s

This commit is contained in:
2026-09-09 12:35:17 -04:00
parent 409d2cd0ca
commit 72346130ed
8 changed files with 68 additions and 14 deletions
@@ -46,4 +46,18 @@ test('fails clearly when a requested pricing provider is unavailable', async ()
() => service.refresh({ sellerId: 'seller-1', inventoryItemId: 'inventory-1', providerId: 'missing' }),
(error) => error.code === 'PRICING_PROVIDER_UNAVAILABLE' && error.statusCode === 503,
);
});
test('enqueues a seller-scoped pricing refresh and reads its status', async () => {
const service = createPricingService({
pricingRepository: {},
pricingRefreshJobRepository: {
async create(input) { return { id: 'job-1', status: 'PENDING', ...input }; },
async findByIdForSeller(id, sellerId) { return { id, sellerId, status: 'COMPLETED' }; },
},
});
const job = await service.enqueueRefresh({ sellerId: 'seller-1', inventoryItemId: 'item-1', providerId: 'provider-1', productId: 'product-1', conditionId: 'condition-1' });
assert.equal(job.status, 'PENDING');
assert.equal((await service.getJob({ sellerId: 'seller-1', jobId: job.id })).status, 'COMPLETED');
});