Manual changes following smoke test

This commit is contained in:
Cooldude2606
2026-09-01 01:04:09 +01:00
parent 574a0a4b52
commit 59df8bdff3
18 changed files with 191 additions and 98 deletions
+37 -15
View File
@@ -6,35 +6,57 @@ const { seedRoles, flattenSeedPermissions } = require("../dist/node/seed");
// Importing this defines the exp_scenario permissions the seed grants
require("@expcluster/scenario/dist/node/permissions");
t.test("seedRoles grant only defined permissions", subtest => {
t.test("seedRoles[] grant only defined permissions", t2 => {
for (const role of seedRoles) {
for (const permission of flattenSeedPermissions(role)) {
subtest.ok(lib.permissions.has(permission), `${role.name} grants defined permission ${permission}`);
for (const permission of role.permissions) {
t2.ok(lib.permissions.has(permission), `${role.name} grants defined permission ${permission}`);
}
}
subtest.end();
t2.end();
});
t.test("flattenSeedPermissions() carries parents into their children", subtest => {
t.test("seedRoles[] are unique with one default and one admin", t2 => {
const names = seedRoles.map(role => role.name);
t2.strictSame(names.length, new Set(names).size, "names are unique");
t2.strictSame(seedRoles.filter(role => role.isDefault).length, 1, "one default role");
t2.strictSame(seedRoles.filter(role => role.isAdmin).length, 1, "one admin role");
t2.end();
});
t.test("flattenSeedPermissions() inherits permissions from parent roles", t2 => {
const byName = new Map(seedRoles.map(role => [role.name, role]));
for (const role of seedRoles) {
if (role.parent === undefined) {
continue;
}
const parent = byName.get(role.parent);
subtest.ok(parent, `${role.name} has parent ${role.parent}`);
t2.ok(parent, `${role.name} has parent ${role.parent}`);
const flattened = flattenSeedPermissions(role);
for (const permission of flattenSeedPermissions(parent)) {
subtest.ok(flattened.has(permission), `${role.name} inherits ${permission}`);
t2.ok(flattened.has(permission), `${role.name} inherits ${permission}`);
}
}
subtest.end();
t2.end();
});
t.test("seedRoles are unique with one default and one admin", subtest => {
const names = seedRoles.map(role => role.name);
subtest.strictSame(names.length, new Set(names).size, "names are unique");
subtest.strictSame(seedRoles.filter(role => role.isDefault).length, 1, "one default role");
subtest.strictSame(seedRoles.filter(role => role.isAdmin).length, 1, "one admin role");
subtest.end();
});
t.test("flattenSeedPermissions() does not inherit permissions when parent is undefined", t2 => {
for (const role of seedRoles) {
if (role.parent !== undefined) {
continue;
}
const flattened = flattenSeedPermissions(role);
for (const permission of role.permissions) {
t2.ok(flattened.has(permission), `${role.name} contains ${permission}`);
}
t2.equal(
flattened.size,
role.permissions.length,
`${role.name} has no inherited permissions`,
);
}
t2.end();
});