import assert from 'node:assert/strict'; import test from 'node:test'; import { createPublicImageService } from '../../src/modules/inventory/services/public-image-service.js'; test('returns public image URLs without exposing storage keys', async () => { const service = createPublicImageService({ inventoryImageRepository: { async listPublicByInventoryItemId(id) { assert.equal(id, 'inventory-1'); return [{ id: 'image-1', altText: 'Front of card', sortOrder: 0 }]; }, }, imageStorage: { async get() { return Buffer.from('unused'); } }, }); assert.deepEqual(await service.listForInventoryItem('inventory-1'), [{ id: 'image-1', altText: 'Front of card', sortOrder: 0, variants: {}, url: '/api/v1/public/images/image-1/large', }]); }); test('loads only repository-approved public image content', async () => { const service = createPublicImageService({ inventoryImageRepository: { async findPublicById(id) { assert.equal(id, 'image-1'); return { id, storageKey: 'inventory/image.webp', mimeType: 'image/webp' }; }, }, imageStorage: { async get(key) { assert.equal(key, 'inventory/image.webp'); return Buffer.from('image-bytes'); }, }, }); const result = await service.getContent('image-1'); assert.deepEqual(result.data, Buffer.from('image-bytes')); assert.equal(result.storageKey, 'inventory/image.webp'); });