feat(housekeeping): complete people moderation parity

This commit is contained in:
Simo committed 2026-08-29 22:38:50 +02:00
1 parent 3d385d1869
commit 29fe22297b
41 files changed
+3465 -580

No files matched your search

@@ -1,6 +1,9 @@
import { describe, expect, it } from "vitest";
import { PERMS } from "@/lib/permission-slugs";
import { PEOPLE_PRIMARY_ROUTES } from "../domains/people/routes";
import { PEOPLE_INBOX_SOURCES } from "../domains/people/inbox";
import { PEOPLE_ROUTES } from "../domains/people/routes";
import { PEOPLE_SEARCH_PROVIDERS } from "../domains/people/search";
import { PEOPLE_WIDGETS } from "../domains/people/widgets";
import { SYSTEM_ROUTES } from "../domains/system/routes";
import { HOUSEKEEPING_MANIFESTS } from "../manifests";
import { HOUSEKEEPING_MIGRATION_MATRIX } from "../migration/matrix";
@@ -357,14 +360,20 @@ describe("housekeeping registry", () => {
});
expect(actual.routes).toEqual(
expected.id === "people"
? PEOPLE_PRIMARY_ROUTES
? PEOPLE_ROUTES
: expected.id === "system"
? SYSTEM_ROUTES
: [],
);
expect(actual.searchProviders).toEqual([]);
expect(actual.inboxSources).toEqual([]);
expect(actual.widgets).toEqual([]);
expect(actual.searchProviders).toEqual(
expected.id === "people" ? PEOPLE_SEARCH_PROVIDERS : [],
);
expect(actual.inboxSources).toEqual(
expected.id === "people" ? PEOPLE_INBOX_SOURCES : [],
);
expect(actual.widgets).toEqual(
expected.id === "people" ? PEOPLE_WIDGETS : [],
);
expect(actual.capability).toEqual({ mode: "any", slugs: expected.slugs });
}
});
@@ -389,7 +398,7 @@ describe("housekeeping registry", () => {
}
});
it("rejects duplicate provider and widget ids across domain manifests", () => {
it("rejects duplicates within each provider kind across domain manifests", () => {
expect(() =>
createHousekeepingRegistry([
{ ...manifest("people"), searchProviders: [searchProvider("shared")] },
@@ -425,7 +434,7 @@ describe("housekeeping registry", () => {
widgets: [widget("shared", "content")],
},
]),
).toThrow("duplicate widget id: shared");
).not.toThrow();
});
it("rejects provider and widget ownership outside their manifest", () => {