prometheus
1import * as React from 'react';
2import { shallow } from 'enzyme';
3import TargetLabels from './TargetLabels';
4import { Tooltip, Badge } from 'reactstrap';
5import toJson from 'enzyme-to-json';
6
7describe('targetLabels', () => {
8const defaultProps = {
9discoveredLabels: {
10__address__: 'localhost:9100',
11__metrics_path__: '/metrics',
12__scheme__: 'http',
13job: 'node_exporter',
14},
15labels: {
16instance: 'localhost:9100',
17job: 'node_exporter',
18foo: 'bar',
19},
20};
21const targetLabels = shallow(<TargetLabels {...defaultProps} />);
22
23it('renders a div of series labels', () => {
24const div = targetLabels.find('div').filterWhere((elem) => elem.hasClass('series-labels-container'));
25expect(div).toHaveLength(1);
26});
27
28it('wraps each label in a label badge', () => {
29const l: { [key: string]: string } = defaultProps.labels;
30Object.keys(l).forEach((labelName: string): void => {
31const badge = targetLabels
32.find(Badge)
33.filterWhere((badge) => badge.children().text() === `${labelName}="${l[labelName]}"`);
34expect(badge).toHaveLength(1);
35});
36expect(targetLabels.find(Badge)).toHaveLength(3);
37});
38});
39