You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SelectionCardUI.test.js 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { Router } from "react-router-dom";
  2. import { SelectionProvider } from "../../context/SelectionContext";
  3. import * as redux from "react-redux";
  4. import { fireEvent, render, screen } from "@testing-library/react";
  5. import store from "../../store";
  6. import history from "../../store/utils/history";
  7. import { mockState } from "../../mockState";
  8. import SelectionCard from "../../components/Selection/SelectionCard";
  9. import userEvent from "@testing-library/user-event";
  10. describe("SelectionProcessPage render tests *first in order", () => {
  11. var props = {
  12. item: mockState.selections.processes[1].selectionProcesses[0],
  13. click: jest.fn(),
  14. dragStart: jest.fn(),
  15. };
  16. const cont = (
  17. <redux.Provider store={store}>
  18. <SelectionProvider>
  19. <Router history={history}>
  20. <SelectionCard {...props} />
  21. </Router>
  22. </SelectionProvider>
  23. </redux.Provider>
  24. );
  25. let spyOnUseSelector;
  26. let spyOnUseDispatch;
  27. let mockDispatch;
  28. beforeEach(() => {
  29. // Mock useSelector hook
  30. spyOnUseSelector = jest.spyOn(redux, "useSelector");
  31. // Mock useDisptach hook
  32. spyOnUseDispatch = jest.spyOn(redux, "useDispatch");
  33. // Mock dispatch function returned from useDispatch
  34. mockDispatch = jest.fn();
  35. spyOnUseDispatch.mockReturnValue(mockDispatch);
  36. });
  37. afterEach(() => {
  38. jest.restoreAllMocks();
  39. });
  40. it("Should render card", () => {
  41. render(cont);
  42. expect(screen.getByTestId("sel-card")).toBeDefined();
  43. });
  44. it("Should render schedule", () => {
  45. render(cont);
  46. expect(screen.getByTestId("process-date")).toBeDefined();
  47. });
  48. // to be completed
  49. // it("Should dispatch status change action when option 'done' is selected", async () => {
  50. // render(cont);
  51. // fireEvent.click(screen.getByTestId("status-btn"));
  52. // var select = screen.getByTestId("status-select-drop");
  53. // fireEvent.change(select, { target: { value: "Odrađen" } });
  54. // // userEvent.click(screen.getByRole(screen.getByTestId("status-select-drop"), "button"));
  55. // // await waitFor(() => userEvent.click(screen.getByText(/odrađen/i)));
  56. // // expect(screen.getByRole("heading")).toHaveTextContent(/odrađen/i);
  57. // expect(mockDispatch).toHaveBeenCalledWith(
  58. // setDoneProcessReq({
  59. // id: props.item.id,
  60. // name: "Some random name",
  61. // applicantId: props.item.applicant.applicantId,
  62. // })
  63. // );
  64. // });
  65. });