1 | require('@babel/register');
|
2 |
|
3 |
|
4 | var _require = require('create-jest-runner'),
|
5 | pass = _require.pass,
|
6 | fail = _require.fail,
|
7 | skip = _require.skip;
|
8 |
|
9 | var CLIEngine = require('eslint').CLIEngine;
|
10 |
|
11 | var isCI = require('is-ci');
|
12 |
|
13 | var _require2 = require('@kiwicom/monorepo-utils'),
|
14 | Git = _require2.Git;
|
15 |
|
16 | var formatter = require('./stylish');
|
17 |
|
18 | var isEslintConfigFile = require('./isEslintConfigFile');
|
19 |
|
20 | var PERFORM_FIXES = isCI === false;
|
21 | var cliEngine = new CLIEngine({
|
22 | fix: PERFORM_FIXES,
|
23 | reportUnusedDisableDirectives: true
|
24 | });
|
25 |
|
26 |
|
27 |
|
28 | var changedFiles = Git.getChangesToTest();
|
29 |
|
30 | module.exports = function (_ref) {
|
31 | var testPath = _ref.testPath,
|
32 | extraOptions = _ref.extraOptions;
|
33 | var start = Date.now();
|
34 | var runAll = extraOptions.runAll;
|
35 | var _iteratorNormalCompletion = true;
|
36 | var _didIteratorError = false;
|
37 | var _iteratorError = undefined;
|
38 |
|
39 | try {
|
40 | for (var _iterator = changedFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
41 | var changedFile = _step.value;
|
42 |
|
43 | if (isEslintConfigFile(changedFile)) {
|
44 | runAll = true;
|
45 | break;
|
46 | }
|
47 | }
|
48 | } catch (err) {
|
49 | _didIteratorError = true;
|
50 | _iteratorError = err;
|
51 | } finally {
|
52 | try {
|
53 | if (!_iteratorNormalCompletion && _iterator.return != null) {
|
54 | _iterator.return();
|
55 | }
|
56 | } finally {
|
57 | if (_didIteratorError) {
|
58 | throw _iteratorError;
|
59 | }
|
60 | }
|
61 | }
|
62 |
|
63 | if (cliEngine.isPathIgnored(testPath)) {
|
64 | return skip({
|
65 | start: start,
|
66 | end: start,
|
67 | test: {
|
68 | path: testPath
|
69 | }
|
70 | });
|
71 | }
|
72 |
|
73 | if (runAll === false) {
|
74 | var normalizedPath = testPath.replace(process.cwd(), '').replace(/^\//, '');
|
75 |
|
76 | if (changedFiles.includes(normalizedPath) === false) {
|
77 | return skip({
|
78 | start: start,
|
79 | end: start,
|
80 | test: {
|
81 | path: testPath
|
82 | }
|
83 | });
|
84 | }
|
85 | }
|
86 |
|
87 | var report = cliEngine.executeOnFiles([testPath]);
|
88 |
|
89 | if (PERFORM_FIXES) {
|
90 | CLIEngine.outputFixes(report);
|
91 | }
|
92 |
|
93 | var end = Date.now();
|
94 | var result = report.results[0];
|
95 |
|
96 | if (result.errorCount === 0 && result.warningCount > 0) {
|
97 | return passWithWarning({
|
98 | start: start,
|
99 | end: end,
|
100 | test: {
|
101 | path: testPath,
|
102 | warningMessage: formatter(report.results)
|
103 | }
|
104 | });
|
105 | } else if (result.errorCount > 0) {
|
106 | return fail({
|
107 | start: start,
|
108 | end: end,
|
109 | test: {
|
110 | path: testPath,
|
111 | errorMessage: formatter(report.results)
|
112 | }
|
113 | });
|
114 | }
|
115 |
|
116 | return pass({
|
117 | start: start,
|
118 | end: end,
|
119 | test: {
|
120 | path: testPath
|
121 | }
|
122 | });
|
123 | };
|
124 |
|
125 | function passWithWarning(_ref2) {
|
126 | var start = _ref2.start,
|
127 | end = _ref2.end,
|
128 | test = _ref2.test;
|
129 | return {
|
130 | console: null,
|
131 | failureMessage: test.warningMessage,
|
132 | numFailingTests: 0,
|
133 | numPassingTests: 1,
|
134 | numPendingTests: 0,
|
135 | numTodoTests: 0,
|
136 | perfStats: {
|
137 | end: new Date(start).getTime(),
|
138 | start: new Date(end).getTime()
|
139 | },
|
140 | skipped: false,
|
141 | snapshot: {
|
142 | added: 0,
|
143 | fileDeleted: false,
|
144 | matched: 0,
|
145 | unchecked: 0,
|
146 | unmatched: 0,
|
147 | updated: 0
|
148 | },
|
149 | sourceMaps: {},
|
150 | testExecError: null,
|
151 | testFilePath: test.path,
|
152 | testResults: [{
|
153 | ancestorTitles: [],
|
154 | duration: end - start,
|
155 | failureMessages: [test.warningMessage],
|
156 | fullName: test.path,
|
157 | numPassingAsserts: test.warningMessage ? 1 : 0,
|
158 | status: test.warningMessage ? 'failed' : 'passed',
|
159 | title: ''
|
160 | }]
|
161 | };
|
162 | } |
\ | No newline at end of file |