forked from atom/github
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheck-suite-view.test.js
55 lines (42 loc) · 1.77 KB
/
check-suite-view.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import React from 'react';
import {shallow} from 'enzyme';
import {BareCheckSuiteView} from '../../lib/views/check-suite-view';
import CheckRunView from '../../lib/views/check-run-view';
import checkSuiteQuery from '../../lib/views/__generated__/checkSuiteView_checkSuite.graphql';
import {checkSuiteBuilder} from '../builder/graphql/timeline';
describe('CheckSuiteView', function() {
function buildApp(override = {}) {
const props = {
checkSuite: checkSuiteBuilder(checkSuiteQuery).build(),
checkRuns: [],
switchToIssueish: () => {},
...override,
};
return <BareCheckSuiteView {...props} />;
}
it('renders the summarized suite information', function() {
const checkSuite = checkSuiteBuilder(checkSuiteQuery)
.app(a => a.name('app'))
.status('COMPLETED')
.conclusion('SUCCESS')
.build();
const wrapper = shallow(buildApp({checkSuite}));
const icon = wrapper.find('Octicon');
assert.strictEqual(icon.prop('icon'), 'check');
assert.isTrue(icon.hasClass('github-PrStatuses--success'));
assert.strictEqual(wrapper.find('.github-PrStatuses-list-item-context strong').text(), 'app');
});
it('omits app information when the app is no longer present', function() {
const checkSuite = checkSuiteBuilder(checkSuiteQuery)
.nullApp()
.build();
const wrapper = shallow(buildApp({checkSuite}));
assert.isTrue(wrapper.exists('Octicon'));
assert.isFalse(wrapper.exists('.github-PrStatuses-list-item-context'));
});
it('renders a CheckRun for each run within the suite', function() {
const checkRuns = [{id: 0}, {id: 1}, {id: 2}];
const wrapper = shallow(buildApp({checkRuns}));
assert.deepEqual(wrapper.find(CheckRunView).map(v => v.prop('checkRun')), checkRuns);
});
});