mirror of
https://github.com/morluto/rea.git
synced 2026-10-30 19:35:56 +00:00
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { PermissionAuthority } from "./PermissionAuthority.js";
|
|
import { artifactExtractionPermissionRequest } from "./ArtifactExtractionDestination.js";
|
|
import { createPermissionPolicy } from "../domain/permissionPolicy.js";
|
|
|
|
describe("artifact extraction permission", () => {
|
|
it("authorizes the REA-selected temporary destination with one stable grant", async () => {
|
|
const request = artifactExtractionPermissionRequest();
|
|
const { operation_identity: operationIdentity, ...scope } = request;
|
|
const authority = new PermissionAuthority(
|
|
createPermissionPolicy(
|
|
[scope],
|
|
[
|
|
{
|
|
...scope,
|
|
grant_id: "artifact-extraction-once",
|
|
lifetime: "once",
|
|
operation_identity: operationIdentity,
|
|
expires_at: null,
|
|
},
|
|
],
|
|
),
|
|
);
|
|
|
|
await expect(authority.authorize(request, "write")).resolves.toMatchObject({
|
|
ok: true,
|
|
});
|
|
await expect(authority.authorize(request, "write")).resolves.toMatchObject({
|
|
ok: false,
|
|
});
|
|
});
|
|
});
|