fix: classify Studio audit repairs as mutations
This commit is contained in:
1 parent
949e14c109
commit
9b7d5de12f
2 files changed
+46
-6
No files matched your search
@@ -88,6 +88,34 @@ describe("hotelMigrationEntries", () => {
|
|||||||
).toBe(true);
|
).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("classifies Studio Audit repair operations as privileged mutations", () => {
|
||||||
|
const studioAudit = hotelMigrationEntries.find(
|
||||||
|
(row) => row.legacyPath === "/admin/studio/audit",
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(studioAudit).toEqual(
|
||||||
|
expect.objectContaining({
|
||||||
|
capabilities: {
|
||||||
|
read: [PERMS.ASSETS_IMPORT],
|
||||||
|
mutate: [PERMS.ASSETS_IMPORT],
|
||||||
|
},
|
||||||
|
dependencies: expect.objectContaining({
|
||||||
|
mutations: expect.arrayContaining([
|
||||||
|
"POST /api/admin/import/audit",
|
||||||
|
"applyCatalogSql",
|
||||||
|
"ensureDirectories",
|
||||||
|
"repairDuplicateClassnames",
|
||||||
|
"repairFurniData",
|
||||||
|
"repairMissingIcons",
|
||||||
|
"repairMissingNitros",
|
||||||
|
"repairOrphanedCatalog",
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
auditRequirement: "PRIVILEGED_MUTATION",
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it("records the actual permissions for room, radio, and Studio mutations", () => {
|
it("records the actual permissions for room, radio, and Studio mutations", () => {
|
||||||
expect(hotelMigrationEntries).toContainEqual(
|
expect(hotelMigrationEntries).toContainEqual(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
|
|||||||
@@ -368,16 +368,28 @@ export const hotelMigrationEntries: readonly MigrationEntry[] = [
|
|||||||
sourceFile: "src/app/admin/studio/audit/page.tsx",
|
sourceFile: "src/app/admin/studio/audit/page.tsx",
|
||||||
targetPath: "/admin/hotel/studio/audit",
|
targetPath: "/admin/hotel/studio/audit",
|
||||||
decision: "REBUILD",
|
decision: "REBUILD",
|
||||||
capabilities: { read: [PERMS.ASSETS_IMPORT], mutate: [] },
|
capabilities: {
|
||||||
dependencies: {
|
read: [PERMS.ASSETS_IMPORT],
|
||||||
queries: ["POST /api/admin/import/audit", "runCatalogAudit"],
|
mutate: [PERMS.ASSETS_IMPORT],
|
||||||
mutations: [],
|
|
||||||
},
|
},
|
||||||
auditRequirement: "NONE",
|
dependencies: {
|
||||||
|
queries: ["runCatalogAudit"],
|
||||||
|
mutations: [
|
||||||
|
"POST /api/admin/import/audit",
|
||||||
|
"applyCatalogSql",
|
||||||
|
"ensureDirectories",
|
||||||
|
"repairDuplicateClassnames",
|
||||||
|
"repairFurniData",
|
||||||
|
"repairMissingIcons",
|
||||||
|
"repairMissingNitros",
|
||||||
|
"repairOrphanedCatalog",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
auditRequirement: "PRIVILEGED_MUTATION",
|
||||||
localization: "PARTIAL",
|
localization: "PARTIAL",
|
||||||
accessibility: "PARTIAL",
|
accessibility: "PARTIAL",
|
||||||
notes: [
|
notes: [
|
||||||
"The POST endpoint performs a read-only database and filesystem audit",
|
"Audit repairs can mutate asset files, catalog data, FurnitureData, and database structure",
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
plannedHotelEntry({
|
plannedHotelEntry({
|
||||||
|
|||||||
Reference in new issue
Block a user