import { describe, expect, test } from "vitest"; import { cartDraftFactory } from "#src/testing/index.ts"; import { CommercetoolsMock } from "../index.ts"; const ctMock = new CommercetoolsMock(); const projectKey = "dummy"; const customerId = "5fac8fca-2484-4b14-a1d1-cfdce2f8d3c4"; const businessUnitKey = "test-business-unit"; describe("AsAssociateCart", () => { const factory = cartDraftFactory(ctMock); test("Create cart", async () => { const draft = factory.build({ currency: "EUR" }); const response = await ctMock.app.inject({ method: "POST", url: `/${projectKey}/as-associate/${customerId}/in-business-unit/key=${businessUnitKey}/carts`, payload: draft, }); expect(response.statusCode).toBe(201); const cart = response.json(); expect(cart.id).toBeDefined(); }); test("Get cart", async () => { const cart = await factory.create({ currency: "USD" }); const response = await ctMock.app.inject({ method: "GET", url: `/${projectKey}/as-associate/${customerId}/in-business-unit/key=${businessUnitKey}/carts/${cart.id}`, }); expect(response.statusCode).toBe(200); expect(response.json()).toEqual(cart); }); test("Query carts", async () => { await factory.create({ currency: "GBP" }); const response = await ctMock.app.inject({ method: "GET", url: `/${projectKey}/as-associate/${customerId}/in-business-unit/key=${businessUnitKey}/carts`, }); expect(response.statusCode).toBe(200); expect(response.json().count).toBeGreaterThan(0); }); });