1
import React from 'react';
2
import { shallow, mount, ReactWrapper } from 'enzyme';
3
import { act } from 'react-dom/test-utils';
4
import Targets from './Targets';
5
import ScrapePoolList from './ScrapePoolList';
6
import { FetchMock } from 'jest-fetch-mock/types';
7
import { scrapePoolsSampleAPI } from './__testdata__/testdata';
9
describe('Targets', () => {
11
fetchMock.resetMocks();
14
let targets: ReactWrapper;
17
describe('Header', () => {
18
const targets = shallow(<Targets />);
19
const h2 = targets.find('h2');
20
it('renders a header', () => {
21
expect(h2.text()).toEqual('Targets');
23
it('renders exactly one header', () => {
24
const h2 = targets.find('h2');
25
expect(h2).toHaveLength(1);
29
it('renders a scrape pool list', async () => {
30
mock = fetchMock.mockResponseOnce(JSON.stringify(scrapePoolsSampleAPI));
31
await act(async () => {
32
targets = mount(<Targets />);
34
expect(mock).toHaveBeenCalledWith('/api/v1/scrape_pools', {
36
credentials: 'same-origin',
40
const scrapePoolList = targets.find(ScrapePoolList);
41
expect(scrapePoolList).toHaveLength(1);