-
Marketplace
-
-
- Agent marketplace coming in Phase 16.
-
-
- Browse, install, and manage third-party agents and integrations.
-
-
-
- )
+ return
;
}
diff --git a/src/UILayer/web/src/app/(app)/org-mesh/page.tsx b/src/UILayer/web/src/app/(app)/org-mesh/page.tsx
new file mode 100644
index 00000000..0862585f
--- /dev/null
+++ b/src/UILayer/web/src/app/(app)/org-mesh/page.tsx
@@ -0,0 +1,7 @@
+"use client"
+
+import OrgMeshDashboard from '@/components/widgets/OrgMesh/OrgMeshDashboard';
+
+export default function OrgMeshPage() {
+ return
;
+}
diff --git a/src/UILayer/web/src/components/ErrorBoundary/ErrorBoundary.test.tsx b/src/UILayer/web/src/components/ErrorBoundary/ErrorBoundary.test.tsx
new file mode 100644
index 00000000..ae5d3920
--- /dev/null
+++ b/src/UILayer/web/src/components/ErrorBoundary/ErrorBoundary.test.tsx
@@ -0,0 +1,97 @@
+import React from "react";
+import { render, screen, fireEvent } from "@testing-library/react";
+import { ErrorBoundary } from "./ErrorBoundary";
+
+// Suppress expected console.error output from React and ErrorBoundary
+const originalConsoleError = console.error;
+beforeAll(() => {
+ console.error = jest.fn();
+});
+afterAll(() => {
+ console.error = originalConsoleError;
+});
+
+// Component that always throws to ensure ErrorBoundary catches it
+function AlwaysThrows(): React.ReactNode {
+ throw new Error("Test error message");
+}
+
+describe("ErrorBoundary", () => {
+ it("should render children when no error occurs", () => {
+ render(
+
+ Safe content
+
+ );
+ expect(screen.getByText("Safe content")).toBeInTheDocument();
+ });
+
+ it("should catch errors and show default fallback", () => {
+ render(
+
+
+
+ );
+ expect(screen.getByText("Something went wrong")).toBeInTheDocument();
+ });
+
+ it("should show a Try again button in the default fallback", () => {
+ render(
+
+
+
+ );
+ const button = screen.getByRole("button", { name: /try again/i });
+ expect(button).toBeInTheDocument();
+ });
+
+ it("should show error message in development mode", () => {
+ // NODE_ENV is 'test' by default in jest, which is treated like development
+ // in the component's ternary. Let's verify the fallback text appears.
+ render(
+
+
+
+ );
+ // The fallback shows "An unexpected error occurred." in production,
+ // or the actual error message in development. In test env, NODE_ENV='test'
+ // so it falls to the else branch.
+ expect(
+ screen.getByText("An unexpected error occurred.")
+ ).toBeInTheDocument();
+ });
+
+ it("should render custom fallback when provided", () => {
+ render(
+
Custom error UI }>
+