import assert from 'node:assert/strict'; import test from 'node:test'; import { buildApp } from '../../src/app/build-app.js'; function createTestApp({ authenticateAdmin, authorizeUnsafeRequest } = {}) { return buildApp({ authenticateAdmin, authorizeUnsafeRequest, acquisitionService: { async create(input) { return { id: 'acquisition-1', ...input, costBasisMinor: 1075 }; }, async list() { return []; }, }, }); } test('creates an acquisition for the authenticated seller', async (testContext) => { let csrfChecked = false; const app = createTestApp({ authenticateAdmin: async () => ({ sellerId: 'seller-1' }), authorizeUnsafeRequest: async () => { csrfChecked = true; }, }); testContext.after(() => app.close()); const response = await app.inject({ method: 'POST', url: '/api/v1/admin/acquisitions', headers: { 'x-csrf-token': 'csrf-token' }, payload: { inventoryItemId: 'd2f67d74-9647-48d5-b3a4-74d3b16ea9f8', method: 'PURCHASE', costMinor: 1000, }, }); assert.equal(response.statusCode, 201); assert.equal(response.json().data.costBasisMinor, 1075); assert.equal(csrfChecked, true); }); test('rejects invalid acquisition requests', async (testContext) => { const app = createTestApp({ authenticateAdmin: async () => ({ sellerId: 'seller-1' }) }); testContext.after(() => app.close()); const response = await app.inject({ method: 'POST', url: '/api/v1/admin/acquisitions', payload: { inventoryItemId: 'not-a-uuid', method: '', costMinor: -1 }, }); assert.equal(response.statusCode, 400); assert.equal(response.json().error.code, 'VALIDATION_ERROR'); });