feat(housekeeping): deliver economy vertical
This commit is contained in:
1 parent
1ec05cda39
commit
9c4b973faf
62 files changed
+6306
-1285
No files matched your search
@@ -5,6 +5,7 @@ import { createElement, type ReactElement } from "react";
|
||||
import { renderToStaticMarkup } from "react-dom/server";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { CONTENT_ROUTE_IDS } from "../domains/content/routes";
|
||||
import { ECONOMY_ROUTE_IDS } from "../domains/economy/routes";
|
||||
import { PEOPLE_ROUTE_IDS } from "../domains/people/routes";
|
||||
import { SYSTEM_ROUTE_IDS } from "../domains/system/routes";
|
||||
import { HOUSEKEEPING_MANIFESTS } from "../manifests";
|
||||
@@ -380,6 +381,218 @@ const approvedRuntimeImports = new Map<string, ReadonlySet<string>>([
|
||||
"src/features/housekeeping/domains/content/widgets.ts",
|
||||
new Set(["src/features/housekeeping/domains/content/widgets-production"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/commands/economy-commands.ts",
|
||||
new Set(["src/features/housekeeping/domains/economy/services/mutations"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/catalog.tsx",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/pages/economy-command-form",
|
||||
"src/features/housekeeping/domains/economy/pages/economy-page-frame",
|
||||
"src/features/housekeeping/domains/economy/pages/specialized-catalog-editor",
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/commerce.tsx",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/pages/economy-command-form",
|
||||
"src/features/housekeeping/domains/economy/pages/economy-page-frame",
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/economy-command-form.tsx",
|
||||
new Set(["src/actions/housekeeping-command"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/economy-page-frame.tsx",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
"src/features/housekeeping/domains/economy/routes",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/history.tsx",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/pages/economy-page-frame",
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/items.tsx",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/pages/economy-command-form",
|
||||
"src/features/housekeeping/domains/economy/pages/economy-page-frame",
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/rewards.tsx",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/pages/economy-command-form",
|
||||
"src/features/housekeeping/domains/economy/pages/economy-page-frame",
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/specialized-catalog-editor.tsx",
|
||||
new Set([
|
||||
"src/app/admin/catalog/[id]/catalog-detail-tabs",
|
||||
"src/app/admin/catalog/builder-club/bc-manager",
|
||||
"src/features/housekeeping/domains/economy/routes",
|
||||
"src/lib/db",
|
||||
"drizzle-orm",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/pages/value.tsx",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/pages/economy-command-form",
|
||||
"src/features/housekeeping/domains/economy/pages/economy-page-frame",
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/queries/catalog.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/queries/commerce",
|
||||
"src/features/housekeeping/domains/economy/queries/economy-production",
|
||||
"src/features/housekeeping/domains/economy/queries/value",
|
||||
"src/features/housekeeping/domains/economy/routes",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/queries/commerce.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
"src/features/housekeeping/domains/economy/queries/economy-production",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/queries/economy-production.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
"src/features/housekeeping/domains/economy/queries/commerce",
|
||||
"src/features/housekeeping/domains/economy/routes",
|
||||
"src/lib/db",
|
||||
"drizzle-orm",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/queries/value.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
"src/features/housekeeping/domains/economy/queries/economy-production",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-catalog.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-input",
|
||||
"src/features/housekeeping/domains/economy/services/mutations",
|
||||
"src/features/housekeeping/domains/economy/services/mutations-production",
|
||||
"src/lib/db",
|
||||
"drizzle-orm",
|
||||
"mysql2",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-commerce.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-input",
|
||||
"src/features/housekeeping/domains/economy/services/mutations",
|
||||
"src/lib/db",
|
||||
"drizzle-orm",
|
||||
"mysql2",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-input.ts",
|
||||
new Set(["src/features/housekeeping/domains/economy/services/mutations"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-rewards.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-input",
|
||||
"src/features/housekeeping/domains/economy/services/mutations",
|
||||
"src/features/housekeeping/domains/economy/services/mutations-production",
|
||||
"src/lib/db",
|
||||
"drizzle-orm",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/services/mutations-production.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/services/mutations",
|
||||
"src/features/housekeeping/domains/economy/services/mutations-runtime",
|
||||
"src/lib/db",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/services/mutations-runtime.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-catalog",
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-commerce",
|
||||
"src/features/housekeeping/domains/economy/services/mutation-runtime-rewards",
|
||||
"src/features/housekeeping/domains/economy/services/mutations",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/services/mutations.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/services/mutations-production",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/inbox-production.ts",
|
||||
new Set(["src/features/housekeeping/domains/economy/queries/catalog"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/inbox.ts",
|
||||
new Set(["src/features/housekeeping/domains/economy/inbox-production"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/manifest.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/inbox",
|
||||
"src/features/housekeeping/domains/economy/routes",
|
||||
"src/features/housekeeping/domains/economy/search",
|
||||
"src/features/housekeeping/domains/economy/widgets",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/route-handlers.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/pages/catalog",
|
||||
"src/features/housekeeping/domains/economy/pages/commerce",
|
||||
"src/features/housekeeping/domains/economy/pages/history",
|
||||
"src/features/housekeeping/domains/economy/pages/items",
|
||||
"src/features/housekeeping/domains/economy/pages/rewards",
|
||||
"src/features/housekeeping/domains/economy/pages/value",
|
||||
"src/features/housekeeping/domains/economy/routes",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/search-production.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/economy/queries/catalog",
|
||||
"src/features/housekeeping/domains/economy/search",
|
||||
]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/search.ts",
|
||||
new Set(["src/features/housekeeping/domains/economy/search-production"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/widgets-production.ts",
|
||||
new Set(["src/features/housekeeping/domains/economy/queries/catalog"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/economy/widgets.ts",
|
||||
new Set(["src/features/housekeeping/domains/economy/widgets-production"]),
|
||||
],
|
||||
[
|
||||
"src/features/housekeeping/domains/system/commands/system-commands.ts",
|
||||
new Set(["src/features/housekeeping/domains/system/services/mutations"]),
|
||||
@@ -489,6 +702,7 @@ const approvedRuntimeImports = new Map<string, ReadonlySet<string>>([
|
||||
"src/features/housekeeping/foundation/commands/bootstrap.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/content/commands/content-commands",
|
||||
"src/features/housekeeping/domains/economy/commands/economy-commands",
|
||||
"src/features/housekeeping/domains/people/commands/community-commands",
|
||||
"src/features/housekeeping/domains/people/commands/moderation-commands",
|
||||
"src/features/housekeeping/domains/people/commands/support-commands",
|
||||
@@ -500,6 +714,7 @@ const approvedRuntimeImports = new Map<string, ReadonlySet<string>>([
|
||||
"src/features/housekeeping/route-handlers.ts",
|
||||
new Set([
|
||||
"src/features/housekeeping/domains/content/route-handlers",
|
||||
"src/features/housekeeping/domains/economy/route-handlers",
|
||||
"src/features/housekeeping/domains/people/route-handlers",
|
||||
"src/features/housekeeping/domains/system/route-handlers",
|
||||
]),
|
||||
@@ -1100,7 +1315,7 @@ describe("housekeeping foundation completion contracts", () => {
|
||||
}
|
||||
});
|
||||
|
||||
it("creates the real six-domain registry with People, Content, and System routes enabled", () => {
|
||||
it("creates the real six-domain registry with People, Content, Economy, and System routes enabled", () => {
|
||||
const registry = createHousekeepingRegistry(HOUSEKEEPING_MANIFESTS);
|
||||
|
||||
expect(registry.domains.map((domain) => domain.id)).toEqual([
|
||||
@@ -1114,7 +1329,8 @@ describe("housekeeping foundation completion contracts", () => {
|
||||
expect(
|
||||
registry.domains
|
||||
.filter(
|
||||
(domain) => !["people", "content", "system"].includes(domain.id),
|
||||
(domain) =>
|
||||
!["people", "content", "economy", "system"].includes(domain.id),
|
||||
)
|
||||
.every((domain) => domain.routes.length === 0),
|
||||
).toBe(true);
|
||||
@@ -1128,6 +1344,11 @@ describe("housekeeping foundation completion contracts", () => {
|
||||
.find((domain) => domain.id === "content")
|
||||
?.routes.map((route) => route.id),
|
||||
).toEqual(CONTENT_ROUTE_IDS);
|
||||
expect(
|
||||
registry.domains
|
||||
.find((domain) => domain.id === "economy")
|
||||
?.routes.map((route) => route.id),
|
||||
).toEqual(ECONOMY_ROUTE_IDS);
|
||||
expect(
|
||||
registry.domains
|
||||
.find((domain) => domain.id === "system")
|
||||
|
||||
Reference in new issue
Block a user