UNPKG

4.3 kBJavaScriptView Raw
1(function (handleInput, helper, Joi, request, fs, path, Promise) {
2 'use strict';
3 /*eslint new-cap: ["error", { "newIsCap": false }]*/
4
5 var expect = helper.chai.expect;
6 var lcov2Data = fs.readFileSync(__dirname + '/mock/lcov2.info').toString();
7 var lcovMultiData = fs.readFileSync(__dirname + '/mock/lcov-multilang.info').toString();
8 var originalCodacyToken = process.env.CODACY_PROJECT_TOKEN || process.env.CODACY_REPO_TOKEN;
9
10 describe('Handle Input', function () {
11 beforeEach(function () {
12 helper.clearEnvironmentVariables();
13 process.env.CODACY_PROJECT_TOKEN = originalCodacyToken;
14 });
15 it('should be able to parse multiple files lcov data', function () {
16 var expectedCoverage = {
17 total: 30,
18 fileReports: Joi.array().items(Joi.compile({
19 filename: path.normalize('FileA.js'),
20 coverage: {
21 1: 0,
22 2: 0,
23 9: 0,
24 19: 0
25 },
26 total: 0
27 }),
28 Joi.compile({
29 filename: path.normalize('FileB.js'),
30 coverage: {
31 1: 0,
32 2: 0
33 },
34 total: 0
35 }),
36 Joi.compile({
37 filename: path.normalize('FileC.js'),
38 coverage: {
39 1: 1,
40 2: 1,
41 3: 1,
42 7: 0
43 },
44 total: 75
45 }))
46 };
47
48 return helper.setupMockEndpoint('1234', '4321', Joi.compile(expectedCoverage))
49 .then(function () {
50 return expect(handleInput(lcov2Data, {
51 token: '1234',
52 commit: '4321'
53 })).to.eventually.be.fulfilled();
54 });
55 });
56 it('should be able to parse multiple lang files lcov data', function () {
57 var expectedCoverageJS = {
58 total: 30,
59 fileReports: Joi.array().items(Joi.compile({
60 filename: path.normalize('FileA.js'),
61 coverage: {
62 1: 0,
63 2: 0,
64 3: 0,
65 4: 0,
66 9: 0,
67 19: 0
68 },
69 total: 0
70 }),
71 Joi.compile({
72 filename: path.normalize('FileC.js'),
73 coverage: {
74 1: 1,
75 2: 1,
76 3: 1,
77 7: 0
78 },
79 total: 75
80 }))
81 };
82 var expectedCoverageTS = {
83 total: 40,
84 fileReports: Joi.array().items(Joi.compile({
85 filename: path.normalize('FileB.ts'),
86 coverage: {
87 1: 1,
88 2: 1,
89 3: 0,
90 4: 0
91 },
92 total: 50
93 }),
94 Joi.compile({
95 filename: path.normalize('FileB2.ts'),
96 coverage: {
97 1: 0
98 },
99 total: 0
100 }))
101 };
102
103 return new Promise.all(
104 [
105 helper.setupLangMockEndpoint('1234', '4321', Joi.compile(expectedCoverageJS), 'javascript'),
106 helper.setupLangMockEndpoint('1234', '4321', Joi.compile(expectedCoverageTS), 'typescript')
107 ]
108 ).then(function () {
109 return expect(handleInput(lcovMultiData, {
110 token: '1234',
111 commit: '4321'
112 })).to.eventually.be.fulfilled();
113 });
114 });
115 });
116
117}(require('../lib/handleInput'), require('./helper'), require('joi'),
118 require('request-promise'), require('fs'), require('path'), require('bluebird')));