|
| 1 | +import { useResolvedExtensions } from '@openshift-console/dynamic-plugin-sdk'; |
1 | 2 | import { EmptyState } from '@patternfly/react-core'; |
2 | | -import { shallow } from 'enzyme'; |
| 3 | +import { mount } from 'enzyme'; |
| 4 | +import { waitFor } from '@testing-library/react'; |
| 5 | +import { extensionsMock } from '../__tests-data__/extensions'; |
3 | 6 | import * as React from 'react'; |
4 | 7 | import NetflowTab from '../netflow-tab'; |
5 | 8 | import NetflowTraffic from '../netflow-traffic'; |
6 | 9 | import { PodTabParam, ServiceTabParam, UnknownTabParam } from '../__tests-data__/tabs'; |
| 10 | +import { ConfigResultSample } from '../__tests-data__/config'; |
| 11 | +import { GenericMetricsResult, TopologyMetricsResult } from '../../api/loki'; |
| 12 | +import { AlertsResult, SilencedAlert } from '../../api/alert'; |
| 13 | + |
| 14 | +const useResolvedExtensionsMock = useResolvedExtensions as jest.Mock; |
| 15 | + |
| 16 | +jest.mock('../../api/routes', () => ({ |
| 17 | + getConfig: jest.fn(() => Promise.resolve(ConfigResultSample)), |
| 18 | + getFlows: jest.fn(() => Promise.resolve([])), |
| 19 | + getTopologyMetrics: jest.fn(() => |
| 20 | + Promise.resolve({ metrics: [], stats: { numQueries: 0, limitReached: false } } as TopologyMetricsResult) |
| 21 | + ), |
| 22 | + getGenericMetrics: jest.fn(() => |
| 23 | + Promise.resolve({ metrics: [], stats: { numQueries: 0, limitReached: false } } as GenericMetricsResult) |
| 24 | + ), |
| 25 | + getAlerts: jest.fn(() => Promise.resolve({ data: { groups: [] }, status: 'success' } as AlertsResult)), |
| 26 | + getSilencedAlerts: jest.fn(() => Promise.resolve([] as SilencedAlert[])) |
| 27 | +})); |
7 | 28 |
|
8 | 29 | describe('<NetflowTab />', () => { |
9 | | - it('should shallow component for Pod', async () => { |
10 | | - const wrapper = shallow(<NetflowTab obj={PodTabParam} />); |
11 | | - expect(wrapper.find(NetflowTab)).toBeTruthy(); |
12 | | - expect(wrapper.find(NetflowTraffic)).toHaveLength(1); |
| 30 | + beforeAll(() => { |
| 31 | + useResolvedExtensionsMock.mockReturnValue(extensionsMock); |
| 32 | + }); |
| 33 | + |
| 34 | + it('should mount component for Pod', async () => { |
| 35 | + const wrapper = mount(<NetflowTab obj={PodTabParam} />); |
| 36 | + await waitFor(() => { |
| 37 | + expect(wrapper.find(NetflowTab)).toBeTruthy(); |
| 38 | + expect(wrapper.find(NetflowTraffic)).toHaveLength(1); |
| 39 | + }); |
13 | 40 | }); |
14 | | - it('should shallow component for Service', async () => { |
15 | | - const wrapper = shallow(<NetflowTab obj={ServiceTabParam} />); |
16 | | - expect(wrapper.find(NetflowTab)).toBeTruthy(); |
17 | | - expect(wrapper.find(NetflowTraffic)).toHaveLength(1); |
| 41 | + it('should mount component for Service', async () => { |
| 42 | + const wrapper = mount(<NetflowTab obj={ServiceTabParam} />); |
| 43 | + await waitFor(() => { |
| 44 | + expect(wrapper.find(NetflowTab)).toBeTruthy(); |
| 45 | + expect(wrapper.find(NetflowTraffic)).toHaveLength(1); |
| 46 | + }); |
18 | 47 | }); |
19 | | - it('should render empty state', async () => { |
20 | | - const wrapper = shallow(<NetflowTab obj={UnknownTabParam} />); |
21 | | - expect(wrapper.find(NetflowTraffic)).toHaveLength(0); |
22 | | - expect(wrapper.find(EmptyState)).toHaveLength(1); |
| 48 | + it('should mount empty state', async () => { |
| 49 | + const wrapper = mount(<NetflowTab obj={UnknownTabParam} />); |
| 50 | + await waitFor(() => { |
| 51 | + expect(wrapper.find(NetflowTraffic)).toHaveLength(0); |
| 52 | + expect(wrapper.find(EmptyState)).toHaveLength(1); |
| 53 | + }); |
23 | 54 | }); |
24 | 55 | }); |
0 commit comments