import { expect, test } from "vitest";
import { createMockFailpathClient } from "@failpath/sdk/testing";
test("records checkout steps", async () => {
const failpath = createMockFailpathClient({
defaultMetadata: { env: "test" },
});
const run = failpath.run("checkout", {
runId: "test_run_123",
metadata: { route: "/checkout" },
});
const result = await run.step(
"validate-cart",
async () => {
return "valid";
},
{ metadata: { cartId: "cart_123" } },
);
await run.skip("send-receipt-email");
expect(result).toBe("valid");
expect(failpath.events).toMatchObject([
{
flowKey: "checkout",
runId: "test_run_123",
stepKey: "validate-cart",
status: "running",
},
{
flowKey: "checkout",
runId: "test_run_123",
stepKey: "validate-cart",
status: "success",
metadata: {
env: "test",
route: "/checkout",
cartId: "cart_123",
},
},
{
flowKey: "checkout",
runId: "test_run_123",
stepKey: "send-receipt-email",
status: "skipped",
},
]);
});