import assert from "node:assert/strict"; import test from "node:test"; import { createAcquisitionService } from "../../src/modules/acquisitions/services/acquisition-service.js"; test("creates an owned acquisition and calculates cost basis", async () => { let received; const service = createAcquisitionService({ acquisitionRepository: { async createForSeller(input) { received = input; return { status: "CREATED", acquisition: { id: "acquisition-1", ...input.acquisition }, }; }, }, }); const result = await service.create({ sellerId: "seller-1", inventoryItemId: "inventory-1", method: "PURCHASE", costMinor: 1000, shippingMinor: 150, taxMinor: 75, otherFeesMinor: 50, estimatedTradeValueMinor: 200, }); assert.equal(received.sellerId, "seller-1"); assert.equal(result.costBasisMinor, 1075); }); test("rejects acquisition for an inventory item outside the seller account", async () => { const service = createAcquisitionService({ acquisitionRepository: { async createForSeller() { return { status: "NOT_FOUND" }; }, }, }); await assert.rejects( () => service.create({ sellerId: "seller-1", inventoryItemId: "inventory-1", method: "PURCHASE", costMinor: 100, }), (error) => error.code === "INVENTORY_NOT_FOUND" && error.statusCode === 404, ); });