您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

dayDetailsComponentUI.test.js 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import * as redux from "react-redux";
  2. import store from "../../store";
  3. import { Router } from "react-router-dom";
  4. import { mockState } from "../../mockState";
  5. import { render, screen, fireEvent } from "@testing-library/react";
  6. import history from "../../store/utils/history";
  7. import DayDetailsComponent from "../../components/Schedules/DayDetailsComponent";
  8. import ColorModeProvider from "../../context/ColorModeContext";
  9. const setCurrentlySelected = jest.fn();
  10. const setCurrentlySelectedDay = jest.fn();
  11. const props = {
  12. selectedDate: "20.12.2023",
  13. selectionProcesses: mockState.schedule.schedule,
  14. open: jest.fn(),
  15. onClose: jest.fn(),
  16. setCurrentlySelected: setCurrentlySelected,
  17. setCurrentlySelectedDay: setCurrentlySelectedDay,
  18. currentlySelectedDay: 20,
  19. numberOfDaysInMonth: 31,
  20. history: {
  21. replace: jest.fn(),
  22. push: jest.fn(),
  23. location: {
  24. pathname: "/schedule",
  25. },
  26. },
  27. };
  28. describe("DayDetailsComponent render tests", () => {
  29. const cont = (
  30. <ColorModeProvider>
  31. <redux.Provider store={store}>
  32. <Router history={history}>
  33. <DayDetailsComponent {...props} />
  34. </Router>
  35. </redux.Provider>
  36. </ColorModeProvider>
  37. );
  38. afterEach(() => {
  39. jest.restoreAllMocks();
  40. });
  41. it("Should render", () => {
  42. render(cont);
  43. expect(screen.getByTestId("day-component-dialog")).toBeDefined();
  44. });
  45. it("Should render left arrow as enabled because currenlty selected day is not 1", () => {
  46. render(cont);
  47. expect(screen.getAllByTestId("day-details-left-arrow")[0]).toBeDefined();
  48. });
  49. it("Should render right arrow as enabled because currently selected day is not 31", () => {
  50. render(cont);
  51. expect(screen.getAllByTestId("day-details-right-arrow")[0]).toBeDefined();
  52. });
  53. it("Should show all interviews which we pass to component", () => {
  54. render(cont);
  55. expect(screen.getAllByTestId("day-details-component-process").length).toBe(
  56. mockState.schedule.schedule.length
  57. );
  58. });
  59. it("Should render candidate details page after clicking on candidate name", () => {
  60. render(cont);
  61. fireEvent.click(screen.getAllByTestId("day-details-applicant")[0]);
  62. const arg = { pathname: "/candidates/1" };
  63. expect(props.history.push).toHaveBeenCalledWith(arg);
  64. });
  65. it("Should call function when we press right arrow", () => {
  66. render(cont);
  67. fireEvent.click(screen.getAllByTestId("day-details-right-arrow")[0]);
  68. expect(setCurrentlySelected.mock.calls).toHaveLength(1);
  69. expect(setCurrentlySelectedDay.mock.calls).toHaveLength(1);
  70. });
  71. it("Should call function when we press right arrow", () => {
  72. render(cont);
  73. fireEvent.click(screen.getAllByTestId("day-details-left-arrow")[0]);
  74. expect(setCurrentlySelected.mock.calls).toHaveLength(1);
  75. expect(setCurrentlySelectedDay.mock.calls).toHaveLength(1);
  76. });
  77. });