From 9c74c180899846c1552748d7515ceee49b9f4130 Mon Sep 17 00:00:00 2001 From: Amin Ghasempoor Date: Tue, 10 Oct 2023 11:38:09 +0330 Subject: [PATCH] CFE-4 check and set the api --- public/locales/fa/app.json | 3 +- .../Form/CreateForm/CreateContent.jsx | 6 +-- .../Form/DeleteForm/__test__/index.test.js | 20 +++---- .../role-management/Form/DeleteForm/index.jsx | 14 ++--- .../Form/UpdateForm/UpdateContent.jsx | 2 +- .../Form/UpdateForm/__test__/index.test.js | 22 +++----- .../role-management/Form/UpdateForm/index.jsx | 19 +++---- .../RoleManagementComponent.jsx | 2 +- .../role-management/TableToolbar.jsx | 2 +- .../__test__/RoleManagementComponent.test.js | 53 +++++++++++++++++++ .../dashboard/role-management/index.jsx | 6 +-- .../__test__/LoginExpertComponent.test.js | 1 + src/core/components/DataTable.jsx | 4 +- src/core/data/apiRoutes.js | 2 +- 14 files changed, 94 insertions(+), 62 deletions(-) create mode 100644 src/components/dashboard/role-management/__test__/RoleManagementComponent.test.js diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index cea9212..38083ec 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -73,7 +73,8 @@ "Dashboard": { "dashboard_page": "داشبورد", "change_password": "تغییر رمز عبور", - "edit_profile": "ویرایش پروفایل" + "edit_profile": "ویرایش پروفایل", + "role_management_page": "مدیریت دسترسی" }, "MuiDatePicker": { "date_picker_birthday": "تاریخ" diff --git a/src/components/dashboard/role-management/Form/CreateForm/CreateContent.jsx b/src/components/dashboard/role-management/Form/CreateForm/CreateContent.jsx index 117e009..b646133 100644 --- a/src/components/dashboard/role-management/Form/CreateForm/CreateContent.jsx +++ b/src/components/dashboard/role-management/Form/CreateForm/CreateContent.jsx @@ -34,7 +34,7 @@ const CreateContent = ({mutate, fetchUrl, setOpenConfirmDialog}) => { permissions: [], }, validationSchema, onSubmit: (values, {setSubmitting}) => { const formData = new FormData(); - formData.append("name_en", values.name_en); + formData.append("name", values.name_en); formData.append("name_fa", values.name_fa); for (let i = 0; i < values.permissions.length; i++) { formData.append(`permissions[${i}]`, values.permissions[i]); @@ -42,7 +42,7 @@ const CreateContent = ({mutate, fetchUrl, setOpenConfirmDialog}) => { requestServer(ADD_ROLE_MANAGEMENT, 'post', { data: formData, - }).then((response) => { + }).then(() => { setOpenConfirmDialog(false) mutate(fetchUrl) update_notification() @@ -57,7 +57,7 @@ const CreateContent = ({mutate, fetchUrl, setOpenConfirmDialog}) => { <> {t("AddDialog.add")} - + { describe("Rendering", () => { - it('should see Dialog text', () => { - render( - - - - ) - const textElement = screen.queryByText("ویرایش") - expect(textElement).toBeInTheDocument() - }); it('should see Dialog text when mouse is over', async () => { render( ) - const textElement = screen.queryByText("حذف") - fireEvent.mouseOver(textElement); - const tooltipTextElement = screen.getByText("حذف"); - expect(tooltipTextElement).toBeInTheDocument(); + const textElement = screen.getByTestId("dialog_tooltip") + fireEvent.mouseOver(textElement) + await waitFor(()=>{ + expect(screen.getByText("حذف")).toBeInTheDocument(); + }) }); }) }) \ No newline at end of file diff --git a/src/components/dashboard/role-management/Form/DeleteForm/index.jsx b/src/components/dashboard/role-management/Form/DeleteForm/index.jsx index b2c14fa..b22a907 100644 --- a/src/components/dashboard/role-management/Form/DeleteForm/index.jsx +++ b/src/components/dashboard/role-management/Form/DeleteForm/index.jsx @@ -1,8 +1,7 @@ import {useTranslations} from "next-intl"; import {useState} from "react"; import { - Button, - Dialog, + Dialog, IconButton, Tooltip, } from "@mui/material"; import DeleteIcon from '@mui/icons-material/Delete'; @@ -16,18 +15,15 @@ const DeleteForm = ({rowId, fetchUrl, mutate}) => { return ( <> - + + diff --git a/src/components/dashboard/role-management/Form/UpdateForm/UpdateContent.jsx b/src/components/dashboard/role-management/Form/UpdateForm/UpdateContent.jsx index 23fa4e4..b149c85 100644 --- a/src/components/dashboard/role-management/Form/UpdateForm/UpdateContent.jsx +++ b/src/components/dashboard/role-management/Form/UpdateForm/UpdateContent.jsx @@ -59,7 +59,7 @@ const UpdateContent = ({mutate, row, fetchUrl, setOpenConfirmDialog}) => { <> {t("UpdateDialog.update")} - + { describe("Rendering",()=>{ - it('should see Dialog text', () => { - render( - - - - ) - const textElement = screen.queryByText("ویرایش") - expect(textElement).toBeInTheDocument() - }); - - it('should see Tooltip text when mouse over', () => { + it('should see Tooltip text when mouse over', async () => { render( ) - const buttonElement = screen.getByText("ویرایش"); + const buttonElement = screen.getByTestId("dialog_tooltip"); fireEvent.mouseOver(buttonElement); - const tooltipTextElement = screen.getByText("ویرایش"); - expect(tooltipTextElement).toBeInTheDocument(); + await waitFor(()=>{ + expect(screen.queryByText("ویرایش")).toBeVisible(); + }) }); }) }) \ No newline at end of file diff --git a/src/components/dashboard/role-management/Form/UpdateForm/index.jsx b/src/components/dashboard/role-management/Form/UpdateForm/index.jsx index a6d05c6..018fe32 100644 --- a/src/components/dashboard/role-management/Form/UpdateForm/index.jsx +++ b/src/components/dashboard/role-management/Form/UpdateForm/index.jsx @@ -1,8 +1,8 @@ -import {Button, Dialog, DialogTitle, Stack, Tooltip} from "@mui/material"; -import DataSaverOnIcon from "@mui/icons-material/DataSaverOn"; +import {Dialog, IconButton, Stack, Tooltip} from "@mui/material"; import {useTranslations} from "next-intl"; import {useState} from "react"; import UpdateContent from "@/components/dashboard/role-management/Form/UpdateForm/UpdateContent"; +import EditIcon from "@mui/icons-material/Edit"; const UpdateForm = ({mutate, fetchUrl, row}) => { const t = useTranslations(); @@ -10,19 +10,16 @@ const UpdateForm = ({mutate, fetchUrl, row}) => { return ( - - + + diff --git a/src/components/dashboard/role-management/RoleManagementComponent.jsx b/src/components/dashboard/role-management/RoleManagementComponent.jsx index 1aea1b7..0121c00 100644 --- a/src/components/dashboard/role-management/RoleManagementComponent.jsx +++ b/src/components/dashboard/role-management/RoleManagementComponent.jsx @@ -1,12 +1,12 @@ import DataTable from "@/core/components/DataTable"; import {GET_ROLE_MANAGEMENT} from "@/core/data/apiRoutes"; -import TableToolbar from "@/components/dashboard/role-management/TableToolbar"; import TableRowActions from "@/components/dashboard/role-management/TableRowActions"; import {Box, Typography} from "@mui/material"; import {useTranslations} from "next-intl"; import {useMemo} from "react"; import moment from "jalali-moment"; import MuiDatePicker from "@/core/components/MuiDatePicker"; +import TableToolbar from "@/components/dashboard/role-management/TableToolbar"; const RoleManagementComponent = () => { const t = useTranslations(); diff --git a/src/components/dashboard/role-management/TableToolbar.jsx b/src/components/dashboard/role-management/TableToolbar.jsx index c4cb13b..14dfef1 100644 --- a/src/components/dashboard/role-management/TableToolbar.jsx +++ b/src/components/dashboard/role-management/TableToolbar.jsx @@ -1,5 +1,5 @@ import {useTranslations} from "next-intl"; -import CreateForm from "./Form/CreateForm/index"; +import CreateForm from "@/components/dashboard/role-management/Form/CreateForm"; function TableToolbar({mutate, fetchUrl}) { const t = useTranslations(); diff --git a/src/components/dashboard/role-management/__test__/RoleManagementComponent.test.js b/src/components/dashboard/role-management/__test__/RoleManagementComponent.test.js new file mode 100644 index 0000000..2a50a99 --- /dev/null +++ b/src/components/dashboard/role-management/__test__/RoleManagementComponent.test.js @@ -0,0 +1,53 @@ +import {render, screen} from "@testing-library/react"; +import MockAppWithProviders from "../../../../../mocks/AppWithProvider"; +import RoleManagementComponent from "@/components/dashboard/role-management/RoleManagementComponent"; + +describe("Role Management", ()=>{ + describe("Rendering", ()=>{ + it('should see id title of data table', () => { + render( + + + + ) + const idEelement = screen.queryByText("کد یکتا") + expect(idEelement).toBeInTheDocument() + }); + it('should see name title of data table', () => { + render( + + + + ) + const nameEelement = screen.queryByText("نام انگلیسی") + expect(nameEelement).toBeInTheDocument() + }); + it('should see name_fa title of data table', () => { + render( + + + + ) + const name_faEelement = screen.queryByText("نام فارسی") + expect(name_faEelement).toBeInTheDocument() + }); + it('should see created at title of data table', () => { + render( + + + + ) + const createdEelement = screen.queryByText("تاریخ درخواست") + expect(createdEelement).toBeInTheDocument() + }); + it('should see updated at title of data table', () => { + render( + + + + ) + const updateEelement = screen.queryByText("تاریخ بروزرسانی") + expect(updateEelement).toBeInTheDocument() + }); + }) +}) \ No newline at end of file diff --git a/src/components/dashboard/role-management/index.jsx b/src/components/dashboard/role-management/index.jsx index 09f15bf..5251c8b 100644 --- a/src/components/dashboard/role-management/index.jsx +++ b/src/components/dashboard/role-management/index.jsx @@ -1,12 +1,12 @@ -import DashboardLayouts from "@/layouts/dashboardLayouts"; import RoleManagementComponent from "@/components/dashboard/role-management/RoleManagementComponent"; +import DashboardLayout from "@/layouts/DashboardLayout"; function DashboardRoleManagementComponent() { return ( - + - + ); } diff --git a/src/components/login-expert/__test__/LoginExpertComponent.test.js b/src/components/login-expert/__test__/LoginExpertComponent.test.js index d76e49d..695dbcb 100644 --- a/src/components/login-expert/__test__/LoginExpertComponent.test.js +++ b/src/components/login-expert/__test__/LoginExpertComponent.test.js @@ -124,6 +124,7 @@ describe('Login expert component from login page', () => { }) describe("validation", ()=>{ it("Disabled submit button until fields completed", async ()=> { + render( diff --git a/src/core/components/DataTable.jsx b/src/core/components/DataTable.jsx index 350f37c..aeac2c2 100644 --- a/src/core/components/DataTable.jsx +++ b/src/core/components/DataTable.jsx @@ -134,8 +134,8 @@ function DataTable(props) { renderTopToolbarCustomActions={({table}) => ( <> {props.enableCustomToolbar /* send condition */ - ? props.CustomToolbar /* send component */ - : ""} + ? /* send component */ + : ""} )} renderBottomToolbarCustomActions={({table}) => ( diff --git a/src/core/data/apiRoutes.js b/src/core/data/apiRoutes.js index 0155d4c..4d0231f 100644 --- a/src/core/data/apiRoutes.js +++ b/src/core/data/apiRoutes.js @@ -23,5 +23,5 @@ export const DELETE_ROLE_MANAGEMENT = BASE_URL + "/api/roles" export const GET_PERMISSIONS_LIST = - BASE_URL + "/api/roles/list" + BASE_URL + "/api/permissions/list" //role management \ No newline at end of file