diff --git a/mocks/handler.js b/mocks/handler.js
index 96190e5..dfac7e8 100644
--- a/mocks/handler.js
+++ b/mocks/handler.js
@@ -50,4 +50,9 @@ export const handler = [
ctx.status(200),
);
}),
+ rest.delete(`${EXPERT_MANAGEMENT}/:id`, (req, res, ctx) => {
+ return res(
+ ctx.status(200),
+ );
+ }),
]
\ No newline at end of file
diff --git a/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/__tests__/index.test.js b/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/__tests__/index.test.js
index 02bc549..1e71174 100644
--- a/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/__tests__/index.test.js
+++ b/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/__tests__/index.test.js
@@ -3,6 +3,7 @@ import React from 'react';
import CreateContent from "../../CreateContent";
import MockAppWithProviders from "../../../../../../../../mocks/AppWithProvider";
import userEvent from '@testing-library/user-event';
+import CreateForm from "@/components/dashboard/expert-management/Form/CreateForm";
function selectDropdownItem(screen, openerTestId, itemText) {
const opener = screen.getByTestId(openerTestId);
diff --git a/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/index.jsx b/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/index.jsx
index 6144e85..acac74c 100644
--- a/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/index.jsx
+++ b/src/components/dashboard/expert-management/Form/CreateForm/CreateContent/index.jsx
@@ -62,8 +62,8 @@ const CreateContent = ({setOpenCreateDialog, mutate, fetchUrl}) => {
requestServer(`${EXPERT_MANAGEMENT}`, 'post', {auth: true, data: formData})
.then((response) => {
- mutate(fetchUrl)
setOpenCreateDialog(false)
+ mutate(fetchUrl)
}).catch(() => {
}).finally(() => {
setSubmitting(false);
diff --git a/src/components/dashboard/expert-management/Form/CreateForm/__tests__/index.test.js b/src/components/dashboard/expert-management/Form/CreateForm/__tests__/index.test.js
index f347376..8bf825d 100644
--- a/src/components/dashboard/expert-management/Form/CreateForm/__tests__/index.test.js
+++ b/src/components/dashboard/expert-management/Form/CreateForm/__tests__/index.test.js
@@ -39,45 +39,44 @@ describe("CreateForm Component From Expert Management", () => {
});
});
describe("Form Submission", () => {
- // ask about this part
- // it('Should request to api and if get success close dialog', async () => {
- // render();
- //
- // const CreateButton = screen.getByRole('button', {name: "افزودن کارشناس"});
- // fireEvent.click(CreateButton);
- //
- // const submitButton = screen.queryByText('ثبت');
- //
- // const nameInput = screen.queryByLabelText('نام کامل');
- // const usernameInput = screen.queryByLabelText('نام کاربری');
- // const emailInput = screen.queryByLabelText('پست الکترونیک');
- // const phoneNumberInput = screen.queryByLabelText('شماره همراه');
- // const telephoneIdInput = screen.queryByLabelText('کد تلفن');
- // const nationalIdInput = screen.queryByLabelText('کد ملی');
- // const passwordInput = screen.queryByLabelText('رمز عبور');
- // const positionInput = screen.queryByLabelText('سمت');
- //
- // selectDropdownItem(screen, "option-opener-province", "آذربایجان شرقی");
- // selectDropdownItem(screen, "option-opener-role", "ادمین");
- // selectDropdownItem(screen, "option-opener-gender", "مرد");
- //
- // setInputValue(screen, nameInput, 'nameTest');
- // setInputValue(screen, usernameInput, 'usernameTest');
- // setInputValue(screen, emailInput, 'emailTest@gmail.com');
- // setInputValue(screen, phoneNumberInput, '0914577458');
- // setInputValue(screen, telephoneIdInput, '091');
- // setInputValue(screen, nationalIdInput, 'nationalIdTest');
- // setInputValue(screen, passwordInput, 'passwordTest12');
- // setInputValue(screen, positionInput, 'positionTest');
- //
- // expect(submitButton).not.toBeDisabled();
- // await fireEvent.click(submitButton);
- //
- // await waitFor(() => {
- // const dialogContent = screen.getByTestId('create-dialog-content');
- // expect(dialogContent).not.toBeInTheDocument();
- // });
- // });
+ it('Should request to api and if get success close dialog', async () => {
+ render();
+
+ const CreateButton = screen.getByRole('button', {name: "افزودن کارشناس"});
+ fireEvent.click(CreateButton);
+
+ const submitButton = screen.queryByText('ثبت');
+
+ const nameInput = screen.queryByLabelText('نام کامل');
+ const usernameInput = screen.queryByLabelText('نام کاربری');
+ const emailInput = screen.queryByLabelText('پست الکترونیک');
+ const phoneNumberInput = screen.queryByLabelText('شماره همراه');
+ const telephoneIdInput = screen.queryByLabelText('کد تلفن');
+ const nationalIdInput = screen.queryByLabelText('کد ملی');
+ const passwordInput = screen.queryByLabelText('رمز عبور');
+ const positionInput = screen.queryByLabelText('سمت');
+
+ selectDropdownItem(screen, "option-opener-province", "آذربایجان شرقی");
+ selectDropdownItem(screen, "option-opener-role", "ادمین");
+ selectDropdownItem(screen, "option-opener-gender", "مرد");
+
+ setInputValue(screen, nameInput, 'nameTest');
+ setInputValue(screen, usernameInput, 'usernameTest');
+ setInputValue(screen, emailInput, 'emailTest@gmail.com');
+ setInputValue(screen, phoneNumberInput, '0914577458');
+ setInputValue(screen, telephoneIdInput, '091');
+ setInputValue(screen, nationalIdInput, 'nationalIdTest');
+ setInputValue(screen, passwordInput, 'passwordTest12');
+ setInputValue(screen, positionInput, 'positionTest');
+
+ expect(submitButton).not.toBeDisabled();
+ fireEvent.click(submitButton);
+
+ await waitFor(() => {
+ const dialogContent = screen.queryByTestId('create-dialog-content');
+ expect(dialogContent).not.toBeInTheDocument();
+ });
+ });
it('Should request to api and if get error keep previous data', async () => {
render();
diff --git a/src/components/dashboard/expert-management/Form/DeleteForm/__tests__/index.test.js b/src/components/dashboard/expert-management/Form/DeleteForm/__tests__/index.test.js
index df11883..f2e52b0 100644
--- a/src/components/dashboard/expert-management/Form/DeleteForm/__tests__/index.test.js
+++ b/src/components/dashboard/expert-management/Form/DeleteForm/__tests__/index.test.js
@@ -1,4 +1,4 @@
-import {act, fireEvent, render, screen} from "@testing-library/react";
+import {fireEvent, render, screen, waitFor} from "@testing-library/react";
import MockAppWithProviders from "../../../../../../../mocks/AppWithProvider";
import React from "react";
import DeleteForm from "@/components/dashboard/expert-management/Form/DeleteForm";
@@ -44,10 +44,23 @@ describe("CreateForm Component From Expert Management", () => {
render();
const DeleteButton = screen.getByTestId('delete-button');
fireEvent.click(DeleteButton);
- await act(() => {
+ await waitFor(() => {
const DeleteDialog = screen.getByRole('dialog', {name: "حذف کارشناس"})
expect(DeleteDialog).toBeInTheDocument();
});
});
});
+ describe("Form Submission", () => {
+ it("By Clicking Delete Button Request To Api And Delete Item", async () => {
+ render();
+ const DeleteButton = screen.getByTestId('delete-button');
+ fireEvent.click(DeleteButton);
+ const DeleteButtonDialog = screen.getByRole('button', {name: "حذف"});
+ fireEvent.click(DeleteButtonDialog);
+ await waitFor(() => {
+ const DeleteDialog = screen.queryByRole('dialog', {name: "حذف کارشناس"});
+ expect(DeleteDialog).not.toBeInTheDocument();
+ });
+ });
+ });
});
\ No newline at end of file
diff --git a/src/components/dashboard/expert-management/Form/DeleteForm/index.jsx b/src/components/dashboard/expert-management/Form/DeleteForm/index.jsx
index ed60083..03a9e82 100644
--- a/src/components/dashboard/expert-management/Form/DeleteForm/index.jsx
+++ b/src/components/dashboard/expert-management/Form/DeleteForm/index.jsx
@@ -24,13 +24,13 @@ const Delete = ({rowId, fetchUrl, mutate}) => {
setIsSubmitting(true)
requestServer(`${EXPERT_MANAGEMENT}/${rowId}`, 'DELETE')
.then((response) => {
+ setOpenDeleteDialog(false);
mutate(fetchUrl)
})
.catch(() => {
})
.finally(() => {
setIsSubmitting(false)
- setOpenDeleteDialog(false);
});
};