forked from nodejs/node-core-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpr_data.test.js
More file actions
59 lines (50 loc) · 1.75 KB
/
pr_data.test.js
File metadata and controls
59 lines (50 loc) · 1.75 KB
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
56
57
58
59
import { describe, it } from 'node:test';
import assert from 'node:assert';
import * as sinon from 'sinon';
import PRData from '../../lib/pr_data.js';
import {
approvingReviews,
allGreenReviewers,
commentsWithLGTM,
oddCommits,
collaborators,
firstTimerPR,
readme
} from '../fixtures/data.js';
import TestCLI from '../fixtures/test_cli.js';
function toRaw(obj) {
return JSON.parse(JSON.stringify(obj));
}
const rawPR = toRaw({
repository: { pullRequest: firstTimerPR }
});
describe('PRData', function() {
const request = {
text: sinon.stub(),
gql: sinon.stub()
};
request.text
.withArgs('https://raw.githubusercontent.com/nodejs/node/HEAD/README.md')
.returns(Promise.resolve(readme));
request.text.returns(new Error('unknown query'));
request.gql.withArgs('PR').returns(Promise.resolve(rawPR));
request.gql.withArgs('Reviews').returns(
Promise.resolve(toRaw(approvingReviews)));
request.gql.withArgs('PRComments').returns(
Promise.resolve(toRaw(commentsWithLGTM)));
request.gql.withArgs('PRCommits').returns(
Promise.resolve(toRaw(oddCommits)));
request.gql.returns(new Error('unknown query'));
const argv = { prid: 16348, owner: 'nodejs', repo: 'node' };
it('getAll', async() => {
const cli = new TestCLI();
const data = new PRData(argv, cli, request);
await data.getAll();
assert.deepStrictEqual(data.collaborators, collaborators, 'collaborators');
assert.deepStrictEqual(data.pr, firstTimerPR, 'pr');
assert.deepStrictEqual(data.reviews, approvingReviews, 'reviews');
assert.deepStrictEqual(data.comments, commentsWithLGTM, 'comments');
assert.deepStrictEqual(data.commits, oddCommits, 'commits');
assert.deepStrictEqual(data.reviewers, allGreenReviewers, 'reviewers');
});
});