import assert from 'node:assert/strict'; import test from 'node:test'; import { calculateNetSaleProceeds, createSale, createSaleItem, } from '../../src/modules/sales/domain/sale.js'; test('creates a valid sale record and calculates net proceeds after fees', () => { const sale = createSale({ sellerId: 'seller-id', saleDate: '2026-09-08', saleLocation: 'eBay', soldPriceMinor: 4999, currency: 'USD', platformFeesMinor: 300, paymentProcessingFeesMinor: 120, shippingCostMinor: 50, taxesMinor: 90, otherFeesMinor: 40, buyerName: 'Alex', buyerContact: 'alex@example.com', }); assert.equal(sale.soldPriceMinor, 4999); assert.equal(sale.currency, 'USD'); assert.equal(calculateNetSaleProceeds({ soldPriceMinor: 4999, platformFeesMinor: 300, paymentProcessingFeesMinor: 120, shippingCostMinor: 50, taxesMinor: 90, otherFeesMinor: 40, }), 4399); }); test('rejects invalid sales and negative fee values', () => { assert.throws( () => createSale({ sellerId: 'seller-id', saleDate: '2026-09-08', soldPriceMinor: 0, }), /must be a positive integer minor unit/, ); assert.throws( () => createSaleItem({ saleId: 'sale-id', inventoryItemId: 'inventory-item-id', soldPriceMinor: 2000, costBasisMinor: -1, }), /must be a non-negative integer minor unit/, ); });