1 | (function (nock, chai, Promise) {
|
2 | 'use strict';
|
3 |
|
4 | var expect = chai.expect;
|
5 | chai.use(require('chai-as-promised'));
|
6 | chai.use(require('dirty-chai'));
|
7 | chai.config.includeStack = true;
|
8 |
|
9 |
|
10 | nock.disableNetConnect();
|
11 |
|
12 |
|
13 | function setupMockEndpoint(token, commitId, bodyValidator, statusCode) {
|
14 | return new Promise(function (resolve) {
|
15 | expect(token).to.be.ok();
|
16 | expect(commitId).to.be.ok();
|
17 | expect(bodyValidator).to.be.ok();
|
18 |
|
19 | return resolve(nock('https://api.codacy.com')
|
20 | .post('/2.0/coverage/' + commitId + '/javascript', function (body) {
|
21 | var result = bodyValidator.validate(body);
|
22 |
|
23 | return !result.error;
|
24 | })
|
25 | .reply(statusCode || 200));
|
26 | });
|
27 | }
|
28 |
|
29 | function setupLangMockEndpoint(token, commitId, bodyValidator, language) {
|
30 | return new Promise(function (resolve) {
|
31 | expect(token).to.be.ok();
|
32 | expect(commitId).to.be.ok();
|
33 | expect(bodyValidator).to.be.ok();
|
34 |
|
35 | return resolve(nock('https://api.codacy.com')
|
36 | .post('/2.0/coverage/' + commitId + '/' + language, function (body) {
|
37 |
|
38 | console.error('<BODY>');
|
39 | console.error(body);
|
40 | console.error('</BODY>');
|
41 |
|
42 | var result = bodyValidator.validate(body);
|
43 | return !(result.error);
|
44 | }).reply(200));
|
45 | });
|
46 | }
|
47 |
|
48 | function setupMockAccountApiEndpoint(apiToken, commitId, username, projectName, bodyValidator) {
|
49 | return new Promise(function (resolve) {
|
50 | expect(apiToken).to.be.ok();
|
51 | expect(commitId).to.be.ok();
|
52 | expect(username).to.be.ok();
|
53 | expect(projectName).to.be.ok();
|
54 | expect(bodyValidator).to.be.ok();
|
55 | return resolve(nock('https://api.codacy.com')
|
56 | .post('/2.0/' + username + '/' + projectName + '/commit/' + commitId + '/coverage' + '/javascript', function(body) {
|
57 | var result = bodyValidator.validate(body);
|
58 | return !result.error;
|
59 | }).reply(200));
|
60 | });
|
61 | }
|
62 |
|
63 | module.exports = {
|
64 | setupMockEndpoint: setupMockEndpoint,
|
65 | setupLangMockEndpoint: setupLangMockEndpoint,
|
66 | setupMockAccountApiEndpoint: setupMockAccountApiEndpoint,
|
67 | chai: chai,
|
68 | clearEnvironmentVariables: function () {
|
69 | process.env.CODACY_GIT_COMMIT = '';
|
70 | process.env.TRAVIS_COMMIT = '';
|
71 | process.env.DRONE_COMMIT = '';
|
72 | process.env.GIT_COMMIT = '';
|
73 | process.env.CIRCLE_SHA1 = '';
|
74 | process.env.CI_COMMIT_ID = '';
|
75 | process.env.WERCKER_GIT_COMMIT = '';
|
76 | process.env.BUILDKITE_COMMIT = '';
|
77 | }
|
78 | };
|
79 | }(require('nock'), require('chai'), require('bluebird')));
|