Move admin screens (users/groups/roles/oauth2-clients) into a drop-in example plugin; add the ctx.system capability surface

This commit is contained in:
2026-07-02 08:01:15 +02:00
parent 2202bdbaa0
commit e8ea911b80
59 changed files with 1095 additions and 1022 deletions
+8
View File
@@ -46,6 +46,14 @@ test("buildContext defaults a missing request URL to /", () => {
assert.equal(buildContext(req, res).url.pathname, "/");
});
test("buildContext exposes ctx.system only when the host supplies it (else undefined)", () => {
const { req, res } = reqRes("/admin/users");
assert.equal(buildContext(req, res).system, undefined); // absent by default — a plugin must degrade
const revoke = (): void => {};
const system = { revoke };
assert.equal(buildContext(req, res, { system }).system, system); // threaded through unchanged
});
test("buildContext provides a logger: a silent default, or the host's request logger", () => {
const { req, res } = reqRes("/");
assert.equal(typeof buildContext(req, res).log.info, "function"); // always present (silent default)