diff --git a/src/components/dashboard/expert-management/DataTable/__tests__/index.test.js b/src/components/dashboard/expert-management/DataTable/__tests__/index.test.js new file mode 100644 index 0000000..4d8b676 --- /dev/null +++ b/src/components/dashboard/expert-management/DataTable/__tests__/index.test.js @@ -0,0 +1,39 @@ +import {render, screen} from "@testing-library/react"; +import MockAppWithProviders from "../../../../../../mocks/AppWithProvider"; +import ExpertManagementDataTable from "@/components/dashboard/expert-management/DataTable"; + +describe("Expert Management Component From Expert Management", () => { + describe("Rendering", () => { + it("Table Headers Rendered", () => { + render(); + const idHeader = screen.queryByText(/کد یکتا/i); + const nameHeader = screen.queryByText(/نام/i); + const usernameHeader = screen.queryByText(/نام کاربری/i); + const emailHeader = screen.queryByText(/پست الکترونیک/i); + const phone_numberHeader = screen.queryByText(/شماره همراه/i); + const national_idHeader = screen.queryByText(/کد ملی/i); + const positionHeader = screen.queryByText(/سمت/i); + const province_nameHeader = screen.queryByText(/استان/i); + const city_nameHeader = screen.queryByText(/شهر/i); + const role_nameHeader = screen.queryByText(/نقش/i); + const updated_atHeader = screen.queryByText(/آخرین بروزرسانی/i); + expect(idHeader).toBeInTheDocument(); + expect(nameHeader).toBeInTheDocument(); + expect(usernameHeader).toBeInTheDocument(); + expect(emailHeader).toBeInTheDocument(); + expect(phone_numberHeader).toBeInTheDocument(); + expect(national_idHeader).toBeInTheDocument(); + expect(positionHeader).toBeInTheDocument(); + expect(province_nameHeader).toBeInTheDocument(); + expect(city_nameHeader).toBeInTheDocument(); + expect(role_nameHeader).toBeInTheDocument(); + expect(updated_atHeader).toBeInTheDocument(); + }); + }); + describe("Behavioral", () => { + + }); + describe("Validation", () => { + + }); +}); \ No newline at end of file diff --git a/src/components/dashboard/expert-management/DataTable/index.jsx b/src/components/dashboard/expert-management/DataTable/index.jsx new file mode 100644 index 0000000..9dee9b6 --- /dev/null +++ b/src/components/dashboard/expert-management/DataTable/index.jsx @@ -0,0 +1,7 @@ +function ExpertManagementDataTable() { + return ( +

asdads

+ ); +} + +export default ExpertManagementDataTable; \ No newline at end of file diff --git a/src/components/dashboard/expert-management/TableRowActions.jsx b/src/components/dashboard/expert-management/TableRowActions.jsx new file mode 100644 index 0000000..e69de29 diff --git a/src/components/dashboard/expert-management/TableToolbar.jsx b/src/components/dashboard/expert-management/TableToolbar.jsx new file mode 100644 index 0000000..e69de29 diff --git a/src/components/dashboard/expert-management/index.jsx b/src/components/dashboard/expert-management/index.jsx new file mode 100644 index 0000000..0b3f5ef --- /dev/null +++ b/src/components/dashboard/expert-management/index.jsx @@ -0,0 +1,12 @@ +import DashboardLayouts from "@/layouts/dashboardLayouts"; +import ExpertManagementDataTable from "@/components/dashboard/expert-management/DataTable"; + +function DashboardExpertManagementComponent() { + return ( + + + + ); +} + +export default DashboardExpertManagementComponent; diff --git a/src/pages/dashboard/expert-management/index.jsx b/src/pages/dashboard/expert-management/index.jsx new file mode 100644 index 0000000..60dc6e2 --- /dev/null +++ b/src/pages/dashboard/expert-management/index.jsx @@ -0,0 +1,23 @@ +import WithAuthMiddleware from "@/middlewares/WithAuth"; +import {parse} from "next-useragent"; +import DashboardExpertManagementComponent from "@/components/dashboard/expert-management"; + +export default function ExpertManagement() { + return ( + + + + ); +} + +export async function getServerSideProps({req, locale}) { + const {isBot} = parse(req.headers["user-agent"]); + return { + props: { + messages: (await import(`&/locales/${locale}/app.json`)).default, + title: "Dashboard.expert_management", + isBot, + locale + }, + }; +}