UNPKG

3.01 kBJavaScriptView Raw
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 // Disable outgoing connections to non-mocked endpoints.
10 nock.disableNetConnect();
11
12 //Setup mock for the Codacy API endpoint.
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')));