Files
WRNexusJS/packages/core/test/execution-context.test.ts
T
Clintchiz 586a6db8ff
Quality / quality (ubuntu-latest) (push) Failing after 21s
Quality / quality (windows-latest) (push) Canceled after 0s
release: WRNexusJS 0.8.0
2026-08-02 23:18:51 +05:30

29 lines
1009 B
TypeScript

import { expect, test } from "bun:test";
import { createContext, createExecutionContext, executionContextFromHttp } from "../src/index.ts";
test("unified execution context spans HTTP and background operations", async () => {
const http = createContext(
new Request("https://app.test/users"),
new URL("https://app.test/users"),
);
http.lang = "fr";
http.user = { id: "u1" };
http.locals.db = { users: true };
const execution = executionContextFromHttp(http, "action", {
authorize: (permission) => {
expect(permission).toBe("users.create");
},
});
await execution.authorize("users.create");
expect(execution).toMatchObject({
kind: "action",
locale: "fr",
user: { id: "u1" },
db: { users: true },
});
execution.response.setStatus(201);
expect(execution.response.status).toBe(201);
const queue = createExecutionContext({ kind: "queue", metadata: { job: "email" } });
expect(queue.request.url).toBe("https://execution.wrnexus.invalid/queue");
});