Skip to content

Instantly share code, notes, and snippets.

View Dromediansk's full-sized avatar

Miroslav Pillár Dromediansk

View GitHub Profile
@Dromediansk
Dromediansk / CountriesContainer.js
Created June 11, 2020 04:17
Test error notification
it("shows error notification if error occurs", () => {
useFetch.mockReturnValue({
loading: false,
data: [],
error: "Some error occured!",
});
const { getByTestId } = render(<CountriesContainer />);
expect(getByTestId("error-message")).toBeInTheDocument();
expect(getByTestId("error-message")).toHaveTextContent(
@Dromediansk
Dromediansk / CountriesContainer.js
Created June 11, 2020 04:09
Test data are being shown
it("shows countries when data are fetched", () => {
useFetch.mockReturnValue({
loading: false,
data: stubbedCountries,
error: null,
});
const { getByTestId } = render(<CountriesContainer />);
expect(getByTestId("Slovakia-card")).toBeInTheDocument();
});
@Dromediansk
Dromediansk / CountriesContainer.js
Created June 10, 2020 19:49
Testing loading spinner
it("shows loading when data are being fetched", () => {
useFetch.mockReturnValue({
loading: true,
data: [],
error: null,
});
const { getByTestId } = render(<CountriesContainer />);
expect(getByTestId("loading-spinner")).toBeInTheDocument();
import React from "react";
import { render, act, fireEvent } from "@testing-library/react";
import CountriesContainer from "./CountriesContainer";
import { useFetch } from "../utils/customHooks";
jest.mock("../utils/customHooks");
const stubbedCountries = [
{
numericCode: 1,
@Dromediansk
Dromediansk / CountriesContainer.js
Created June 10, 2020 19:39
CountriesContainer component
import React, { useRef, useReducer } from "react";
import CountryCard from "../components/CountryCard/CountryCard";
import AdvancedFilter from "../components/AdvancedFilter/AdvancedFilter";
import { useFetch } from "../utils/customHooks";
import { Spinner } from "../utils/Spinner";
import "./CountriesContainer.css";
const CountriesContainer = () => {
const componentIsMounted = useRef(true);
@Dromediansk
Dromediansk / AdvancedFilter.test.js
Created June 10, 2020 18:22
simulate events example
describe("AdvancedFilter component", () => {
// ...
it("triggers event handler on input change of name", () => {
const changedSearchValue = { ...stubbedSearchValue, name: "Slovakia" };
const { getByTestId, rerender } = render(
<AdvancedFilter
searchValue={stubbedSearchValue}
handleChangeValue={mockChangeValue}
/>
import React from "react";
import { render, fireEvent, act } from "@testing-library/react";
import AdvancedFilter from "./AdvancedFilter";
describe("AdvancedFilter component", () => {
const mockChangeValue = jest.fn();
const stubbedSearchValue = {
name: "",
capital: "",
population: "",
@Dromediansk
Dromediansk / CountryCard.js
Created May 17, 2020 11:00
CountryCard component
import React from "react";
import "./CountryCard.css";
const CountryCard = ({ country }) => (
<div className="country-card" data-testid={`${country.name}-card`}>
<h3>{country.name}</h3>
<hr />
<ul className="country-info-list">
<li className="country-info-item">
<h4>Capital:</h4>
@Dromediansk
Dromediansk / CountryCard.test.js
Created May 17, 2020 05:13
Snapshot test example
import React from "react";
import CountryCard from "./CountryCard";
import { render } from "@testing-library/react";
const stubbedCountry = {
name: "Slovakia",
population: 5000000,
capital: "Bratislava",
region: "Europe",
@Dromediansk
Dromediansk / package.json
Last active May 4, 2020 06:12
Example of package.json
{
"name": "your-project-name",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-scripts": "3.3.0"
},
"devDependencies": {