mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-09 23:24:05 -08:00
unit test fixes (#6314)
Signed-off-by: Boyko Lalov <boyskila@gmail.com>
This commit is contained in:
parent
e110402d44
commit
12d347e4db
|
@ -1,11 +1,11 @@
|
|||
import * as React from 'react';
|
||||
import { mount, shallow, ReactWrapper } from 'enzyme';
|
||||
import { act } from 'react-dom/test-utils';
|
||||
import { Alert, Table, Badge } from 'reactstrap';
|
||||
import { Alert, Table } from 'reactstrap';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
import { faSpinner } from '@fortawesome/free-solid-svg-icons';
|
||||
import { TSDBStatus } from '.';
|
||||
import { TSDBMap, Stats } from './TSDBStatus';
|
||||
import { TSDBMap } from './TSDBStatus';
|
||||
|
||||
const fakeTSDBStatusResponse: {
|
||||
status: string;
|
||||
|
@ -46,7 +46,7 @@ const fakeTSDBStatusResponse: {
|
|||
|
||||
describe('TSDB Stats', () => {
|
||||
beforeEach(() => {
|
||||
fetch.resetMocks();
|
||||
fetchMock.resetMocks();
|
||||
});
|
||||
|
||||
it('before data is returned', () => {
|
||||
|
@ -58,9 +58,9 @@ describe('TSDB Stats', () => {
|
|||
|
||||
describe('when an error is returned', () => {
|
||||
it('displays an alert', async () => {
|
||||
const mock = fetch.mockReject(new Error('error loading tsdb status'));
|
||||
const mock = fetchMock.mockReject(new Error('error loading tsdb status'));
|
||||
|
||||
let page: ReactWrapper;
|
||||
let page: any;
|
||||
await act(async () => {
|
||||
page = mount(<TSDBStatus pathPrefix="/path/prefix" />);
|
||||
});
|
||||
|
@ -94,8 +94,8 @@ describe('TSDB Stats', () => {
|
|||
},
|
||||
];
|
||||
|
||||
const mock = fetch.mockResponse(JSON.stringify(fakeTSDBStatusResponse));
|
||||
let page: ReactWrapper;
|
||||
const mock = fetchMock.mockResponse(JSON.stringify(fakeTSDBStatusResponse));
|
||||
let page: any;
|
||||
await act(async () => {
|
||||
page = mount(<TSDBStatus pathPrefix="/path/prefix" />);
|
||||
});
|
||||
|
@ -104,17 +104,17 @@ describe('TSDB Stats', () => {
|
|||
expect(mock).toHaveBeenCalledWith('/path/prefix/api/v1/status/tsdb', undefined);
|
||||
|
||||
for (let i = 0; i < tables.length; i++) {
|
||||
let data = tables[i].data;
|
||||
let table = page
|
||||
const data = tables[i].data;
|
||||
const table = page
|
||||
.find(Table)
|
||||
.at(tables[i].table_index)
|
||||
.find('tbody');
|
||||
let rows = table.find('tr');
|
||||
const rows = table.find('tr');
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const firstRowColumns = rows
|
||||
.at(i)
|
||||
.find('td')
|
||||
.map(column => column.text());
|
||||
.map((column: ReactWrapper) => column.text());
|
||||
expect(rows.length).toBe(data.length);
|
||||
expect(firstRowColumns[0]).toBe(data[i].name);
|
||||
expect(firstRowColumns[1]).toBe(data[i].value.toString());
|
||||
|
|
|
@ -51,9 +51,9 @@ function createTable(title: string, unit: string, stats: Array<Stats>) {
|
|||
}
|
||||
|
||||
const TSDBStatus: FC<RouteComponentProps & PathPrefixProps> = ({ pathPrefix }) => {
|
||||
const { response, error } = useFetch(`${pathPrefix}/api/v1/status/tsdb`);
|
||||
const { response, error } = useFetch<TSDBMap>(`${pathPrefix}/api/v1/status/tsdb`);
|
||||
const headStats = () => {
|
||||
const stats = response && (response.data as TSDBMap);
|
||||
const stats = response && response.data;
|
||||
if (error) {
|
||||
return (
|
||||
<Alert color="danger">
|
||||
|
|
|
@ -8,6 +8,7 @@ import ScrapePoolPanel from './ScrapePoolPanel';
|
|||
import { Target } from './target';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
import { faSpinner } from '@fortawesome/free-solid-svg-icons';
|
||||
import { FetchMock } from 'jest-fetch-mock/types';
|
||||
|
||||
describe('Flags', () => {
|
||||
const defaultProps = {
|
||||
|
@ -16,7 +17,7 @@ describe('Flags', () => {
|
|||
};
|
||||
|
||||
beforeEach(() => {
|
||||
fetch.resetMocks();
|
||||
fetchMock.resetMocks();
|
||||
});
|
||||
|
||||
describe('before data is returned', () => {
|
||||
|
@ -35,7 +36,7 @@ describe('Flags', () => {
|
|||
|
||||
describe('when data is returned', () => {
|
||||
let scrapePoolList: ReactWrapper;
|
||||
let mock: Promise<Response>;
|
||||
let mock: FetchMock;
|
||||
beforeEach(() => {
|
||||
//Tooltip requires DOM elements to exist. They do not in enzyme rendering so we must manually create them.
|
||||
const scrapePools: { [key: string]: number } = { blackbox: 3, node_exporter: 1, prometheus: 1 };
|
||||
|
@ -46,7 +47,7 @@ describe('Flags', () => {
|
|||
document.body.appendChild(div);
|
||||
});
|
||||
});
|
||||
mock = fetch.mockResponse(JSON.stringify(sampleApiResponse));
|
||||
mock = fetchMock.mockResponse(JSON.stringify(sampleApiResponse));
|
||||
});
|
||||
|
||||
it('renders a table', async () => {
|
||||
|
@ -81,9 +82,9 @@ describe('Flags', () => {
|
|||
|
||||
describe('when an error is returned', () => {
|
||||
it('displays an alert', async () => {
|
||||
const mock = fetch.mockReject(new Error('Error fetching targets'));
|
||||
const mock = fetchMock.mockReject(new Error('Error fetching targets'));
|
||||
|
||||
let scrapePoolList: ReactWrapper;
|
||||
let scrapePoolList: any;
|
||||
await act(async () => {
|
||||
scrapePoolList = mount(<ScrapePoolList {...defaultProps} />);
|
||||
});
|
||||
|
|
|
@ -23,7 +23,7 @@ const filterByHealth = ({ upCount, targets }: ScrapePool, { showHealthy, showUnh
|
|||
};
|
||||
|
||||
const ScrapePoolList: FC<ScrapePoolListProps & PathPrefixProps> = ({ filter, pathPrefix }) => {
|
||||
const { response, error } = useFetch(`${pathPrefix}/api/v1/targets?state=active`);
|
||||
const { response, error } = useFetch<TargetsResponse>(`${pathPrefix}/api/v1/targets?state=active`);
|
||||
|
||||
if (error) {
|
||||
return (
|
||||
|
@ -31,14 +31,14 @@ const ScrapePoolList: FC<ScrapePoolListProps & PathPrefixProps> = ({ filter, pat
|
|||
<strong>Error fetching targets:</strong> {error.message}
|
||||
</Alert>
|
||||
);
|
||||
} else if (response && response.status !== 'success') {
|
||||
} else if (response && response.status !== 'success' && response.status !== 'start fetching') {
|
||||
return (
|
||||
<Alert color="danger">
|
||||
<strong>Error fetching targets:</strong> {response.status}
|
||||
</Alert>
|
||||
);
|
||||
} else if (response && response.data) {
|
||||
const { activeTargets } = response.data as TargetsResponse;
|
||||
const { activeTargets } = response.data;
|
||||
const targetGroups = groupTargets(activeTargets);
|
||||
return (
|
||||
<>
|
||||
|
|
Loading…
Reference in a new issue