feat: own tenant administration WebUI
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
|
||||
function assert(condition, message) {
|
||||
if (!condition) throw new Error(message);
|
||||
}
|
||||
|
||||
const moduleSource = readFileSync(
|
||||
new URL("../src/module.ts", import.meta.url),
|
||||
"utf8"
|
||||
);
|
||||
const tenantsSource = readFileSync(
|
||||
new URL("../src/features/admin/TenantsPanel.tsx", import.meta.url),
|
||||
"utf8"
|
||||
);
|
||||
const settingsSource = readFileSync(
|
||||
new URL("../src/features/admin/TenantSettingsPanel.tsx", import.meta.url),
|
||||
"utf8"
|
||||
);
|
||||
|
||||
assert(
|
||||
moduleSource.includes('"admin.sections": adminSections'),
|
||||
"Tenancy contributes its panels through admin.sections"
|
||||
);
|
||||
assert(
|
||||
moduleSource.includes('id: "system-tenants"'),
|
||||
"Tenancy contributes the system tenant registry section"
|
||||
);
|
||||
assert(
|
||||
moduleSource.includes('id: "tenant-settings"'),
|
||||
"Tenancy contributes the active tenant settings section"
|
||||
);
|
||||
assert(
|
||||
moduleSource.includes('surfaceId: "tenancy.admin.system-tenants"') &&
|
||||
moduleSource.includes('surfaceId: "tenancy.admin.tenant-settings"'),
|
||||
"Tenancy owns the view-surface namespace for both admin sections"
|
||||
);
|
||||
assert(
|
||||
!moduleSource.includes("@govoplan/access-webui"),
|
||||
"Tenancy does not import the optional Access WebUI package"
|
||||
);
|
||||
assert(
|
||||
tenantsSource.includes("/api/tenancy"),
|
||||
"The tenant registry panel consumes the tenancy-owned API client"
|
||||
);
|
||||
assert(
|
||||
settingsSource.includes("/api/tenancy"),
|
||||
"The tenant settings panel consumes the tenancy-owned API client"
|
||||
);
|
||||
Reference in New Issue
Block a user