Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

adDetailsCandidateCardUI.test.js 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { render, screen, waitFor, fireEvent } from "@testing-library/react";
  2. import * as redux from "react-redux";
  3. import store from "../../store";
  4. import { Router } from "react-router-dom";
  5. import history from "../../store/utils/history";
  6. import { mockState } from "../../mockState";
  7. import ColorModeProvider from "../../context/ColorModeContext";
  8. import AdDetailsCandidateCard from "../../components/Ads/AdDetailsCandidateCard";
  9. describe("Ad details candidate card ui tests", () => {
  10. const props = {
  11. className: "ad-details-card",
  12. id: 1,
  13. firstName: "Ermin",
  14. lastName: "Bronja",
  15. experience: 1,
  16. cv: "http://",
  17. history: {
  18. replace: jest.fn(),
  19. push: jest.fn(),
  20. location: {
  21. pathname: "/ads/1",
  22. },
  23. },
  24. };
  25. const cont = (
  26. <redux.Provider store={store}>
  27. <Router history={history}>
  28. <ColorModeProvider>
  29. <AdDetailsCandidateCard {...props} />
  30. </ColorModeProvider>
  31. </Router>
  32. </redux.Provider>
  33. );
  34. let spyOnUseSelector;
  35. beforeEach(() => {
  36. spyOnUseSelector = jest.spyOn(redux, "useSelector");
  37. spyOnUseSelector.mockReturnValue(mockState.ads.ads);
  38. });
  39. afterEach(() => {
  40. jest.restoreAllMocks();
  41. });
  42. it("Should load ad details candidate card component", () => {
  43. render(cont);
  44. expect(screen.getByTestId("ad-details-candidate")).toBeDefined();
  45. });
  46. it("Should navigate on candidates page when button clicked", async () => {
  47. render(cont);
  48. waitFor(() => {
  49. fireEvent.click(screen.getByTestId("ad-details-candidate-title-link"));
  50. expect(props.history.push).toHaveBeenCalledWith("/candidates/1");
  51. });
  52. });
  53. });