]> source.dussan.org Git - sonarqube.git/blob
2d523d0ad4c34ceb1a9684e423dd74927461920b
[sonarqube.git] /
1 /*
2  * SonarQube
3  * Copyright (C) 2009-2023 SonarSource SA
4  * mailto:info AT sonarsource DOT com
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 3 of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  */
20 import { shallow } from 'enzyme';
21 import * as React from 'react';
22 import { DEFAULT_GRAPH } from '../../../../components/activity-graph/utils';
23 import { parseDate } from '../../../../helpers/dates';
24 import ProjectActivityGraphs from '../ProjectActivityGraphs';
25
26 const ANALYSES = [
27   {
28     key: 'A1',
29     date: parseDate('2016-10-27T16:33:50+0200'),
30     events: [{ key: 'E1', category: 'VERSION', name: '6.5-SNAPSHOT' }],
31   },
32   {
33     key: 'A2',
34     date: parseDate('2016-10-27T12:21:15+0200'),
35     events: [],
36   },
37   {
38     key: 'A3',
39     date: parseDate('2016-10-26T12:17:29+0200'),
40     events: [
41       { key: 'E2', category: 'VERSION', name: '6.4' },
42       { key: 'E3', category: 'OTHER', name: 'foo' },
43     ],
44   },
45 ];
46
47 const METRICS = [{ id: '1', key: 'code_smells', name: 'Code Smells', type: 'INT' }];
48
49 const DEFAULT_PROPS: ProjectActivityGraphs['props'] = {
50   analyses: ANALYSES,
51   leakPeriodDate: parseDate('2017-05-16T13:50:02+0200'),
52   loading: false,
53   measuresHistory: [
54     {
55       metric: 'code_smells',
56       history: [
57         { date: parseDate('2016-10-26T12:17:29+0200'), value: '2286' },
58         { date: parseDate('2016-10-27T12:21:15+0200'), value: '1749' },
59         { date: parseDate('2016-10-27T16:33:50+0200'), value: '500' },
60       ],
61     },
62   ],
63   metrics: METRICS,
64   project: 'foo',
65   query: {
66     category: '',
67     customMetrics: [],
68     graph: DEFAULT_GRAPH,
69     project: 'org.sonarsource.sonarqube:sonarqube',
70   },
71   updateQuery: () => {},
72 };
73
74 it('should render correctly the graph and legends', () => {
75   expect(shallow(<ProjectActivityGraphs {...DEFAULT_PROPS} />)).toMatchSnapshot();
76 });
77
78 it('should render correctly with filter history on dates', () => {
79   const wrapper = shallow(
80     <ProjectActivityGraphs
81       {...DEFAULT_PROPS}
82       query={{ ...DEFAULT_PROPS.query, from: parseDate('2016-10-27T12:21:15+0200') }}
83     />
84   );
85   expect(wrapper.state()).toMatchSnapshot();
86 });