import assert from 'node:assert/strict'; import test from 'node:test'; import { createSellerSettingsService } from '../../src/modules/settings/services/seller-settings-service.js'; test('merges validated seller settings without replacing other categories', async () => { let stored = null; const service = createSellerSettingsService({ sellerSettingsRepository: { async findBySellerId() { return stored; }, async upsert(sellerId, settings) { stored = { sellerId, settings }; return stored; }, }, }); await service.update({ sellerId: 'seller-1', settings: { pricing: { defaultStrategy: 'median' }, general: { publicContactEmail: 'owner@example.test' } }, }); const result = await service.update({ sellerId: 'seller-1', settings: { inventory: { maxImagesPerItem: 12 } }, }); assert.deepEqual(result, { pricing: { defaultStrategy: 'median' }, general: { publicContactEmail: 'owner@example.test' }, inventory: { maxImagesPerItem: 12 }, }); }); test('rejects unknown or invalid settings', async () => { const service = createSellerSettingsService({ sellerSettingsRepository: { async findBySellerId() { return null; } }, }); await assert.rejects( () => service.update({ sellerId: 'seller-1', settings: { secrets: { token: 'nope' } } }), ); });