diff --git a/packages/frontend-design-poc/src/app.spec.tsx b/packages/frontend-design-poc/src/app.spec.tsx
index 11f207b26..3b29c06d3 100644
--- a/packages/frontend-design-poc/src/app.spec.tsx
+++ b/packages/frontend-design-poc/src/app.spec.tsx
@@ -1,11 +1,16 @@
-import { describe, it, expect } from 'vitest';
-import { render } from '@testing-library/react';
-import App from './App.tsx';
+import { beforeAll, describe, expect, it } from "vitest";
+import { customRender } from "../utils/test-utils.tsx";
+import App from "./App.tsx";
+import { server } from "./mocks/node.ts";
-describe('App Smoke Test', () => {
- it('renders without crashing', () => {
- const { getByTestId } = render();
- const appElement = getByTestId('app');
+describe("App Smoke Test", async () => {
+ beforeAll(async () => {
+ server.listen();
+ });
+
+ it("renders without crashing", () => {
+ const { getByRole } = customRender();
+ const appElement = getByRole("main");
expect(appElement).toBeTruthy();
});
});
diff --git a/packages/frontend-design-poc/src/components/HelloWorld/index.ts b/packages/frontend-design-poc/src/components/HelloWorld/index.ts
new file mode 100644
index 000000000..e69de29bb
diff --git a/packages/frontend-design-poc/src/mocks/node.ts b/packages/frontend-design-poc/src/mocks/node.ts
new file mode 100644
index 000000000..abbedd7eb
--- /dev/null
+++ b/packages/frontend-design-poc/src/mocks/node.ts
@@ -0,0 +1,4 @@
+import { setupServer } from 'msw/node'
+import { handlers } from './handlers'
+
+export const server = setupServer(...handlers)
\ No newline at end of file
diff --git a/packages/frontend-design-poc/src/pages/PageLayout/PageLayout.tsx b/packages/frontend-design-poc/src/pages/PageLayout/PageLayout.tsx
new file mode 100644
index 000000000..17ef22e05
--- /dev/null
+++ b/packages/frontend-design-poc/src/pages/PageLayout/PageLayout.tsx
@@ -0,0 +1,26 @@
+import { HeaderContext } from 'app-shared/navigation/main-header/Header';
+import { Outlet } from 'react-router-dom';
+import { useUserQuery } from 'app-shared/hooks/queries';
+import React, { useMemo } from 'react';
+import type { IHeaderContext } from 'app-shared/navigation/main-header/Header';
+import AppHeader from 'app-shared/navigation/main-header/Header';
+
+export const PageLayout = () => {
+ const { data: user } = useUserQuery();
+
+ const headerContextValue: IHeaderContext = useMemo(
+ () => ({
+ user,
+ }),
+ [user],
+ );
+
+ return (
+ <>
+
+
+
+
+ >
+ );
+};
diff --git a/packages/frontend-design-poc/src/pages/PageLayout/index.ts b/packages/frontend-design-poc/src/pages/PageLayout/index.ts
new file mode 100644
index 000000000..5d502a22e
--- /dev/null
+++ b/packages/frontend-design-poc/src/pages/PageLayout/index.ts
@@ -0,0 +1 @@
+export { PageLayout } from './PageLayout';
diff --git a/packages/frontend-design-poc/src/pages/PageNotFound/PageNotFound.tsx b/packages/frontend-design-poc/src/pages/PageNotFound/PageNotFound.tsx
new file mode 100644
index 000000000..e69de29bb
diff --git a/packages/frontend-design-poc/src/pages/PageNotFound/index.ts b/packages/frontend-design-poc/src/pages/PageNotFound/index.ts
new file mode 100644
index 000000000..e69de29bb
diff --git a/packages/frontend-design-poc/utils/test-utils.tsx b/packages/frontend-design-poc/utils/test-utils.tsx
new file mode 100644
index 000000000..c57fed221
--- /dev/null
+++ b/packages/frontend-design-poc/utils/test-utils.tsx
@@ -0,0 +1,33 @@
+import { QueryClient, QueryClientProvider } from "react-query";
+import { ReactElement } from "react";
+import { MemoryRouter } from "react-router-dom";
+import { render, RenderOptions } from "@testing-library/react";
+
+interface IExtendedRenderOptions extends RenderOptions {
+ initialEntries?: string[];
+}
+
+const queryClient = new QueryClient({
+ defaultOptions: {
+ queries: {
+ retry: false,
+ },
+ },
+});
+
+export const customRender = (
+ ui: ReactElement,
+ options?: Omit,
+) => {
+ const Wrapper = ({ children }: { children: React.ReactNode }) => {
+ return (
+
+
+ {children}
+
+
+ );
+ };
+
+ return render(ui, { wrapper: Wrapper, ...options });
+};