import assert from 'node:assert/strict'; import test from 'node:test'; import { createPricingProvider, createPricingProviderRegistry } from '../../src/modules/pricing/providers/pricing-provider.js'; test('registers pricing providers behind a validated adapter contract', async () => { const provider = createPricingProvider({ id: 'example', async observe() { return [{ priceMinor: 2500, sourceIdentifier: 'example-1' }]; }, }); const registry = createPricingProviderRegistry([provider]); assert.equal(registry.get('example'), provider); assert.deepEqual(await registry.get('example').observe({}), [{ priceMinor: 2500, sourceIdentifier: 'example-1' }]); assert.deepEqual(registry.list(), [provider]); }); test('rejects malformed provider adapters and responses', async () => { assert.throws(() => createPricingProvider({ id: 'broken' }), /observe function is required/); const provider = createPricingProvider({ id: 'broken', async observe() { return null; } }); await assert.rejects(() => provider.observe({}), /must return an observation array/); });