release: WRNexusJS 0.8.0
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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");
|
||||
});
|
||||
Reference in New Issue
Block a user