@teambit/tester 0.0.880 → 0.0.882
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exceptions/index.js +0 -6
- package/dist/exceptions/index.js.map +1 -1
- package/dist/exceptions/no-matching-components.js +0 -3
- package/dist/exceptions/no-matching-components.js.map +1 -1
- package/dist/exceptions/no-test-files-found.js +0 -6
- package/dist/exceptions/no-test-files-found.js.map +1 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +1 -1
- package/dist/test.cmd.js +2 -37
- package/dist/test.cmd.js.map +1 -1
- package/dist/tester.aspect.js +0 -5
- package/dist/tester.aspect.js.map +1 -1
- package/dist/tester.compare.section.js +0 -13
- package/dist/tester.compare.section.js.map +1 -1
- package/dist/tester.composition.js +0 -6
- package/dist/tester.composition.js.map +1 -1
- package/dist/tester.graphql.js +0 -17
- package/dist/tester.graphql.js.map +1 -1
- package/dist/tester.js +0 -6
- package/dist/tester.js.map +1 -1
- package/dist/tester.main.runtime.js +3 -94
- package/dist/tester.main.runtime.js.map +1 -1
- package/dist/tester.service.js +0 -50
- package/dist/tester.service.js.map +1 -1
- package/dist/tester.task.js +11 -54
- package/dist/tester.task.js.map +1 -1
- package/dist/tester.ui.runtime.js +1 -34
- package/dist/tester.ui.runtime.js.map +1 -1
- package/dist/tests.section.js +0 -13
- package/dist/tests.section.js.map +1 -1
- package/dist/utils/detect-spec-files.js +0 -4
- package/dist/utils/detect-spec-files.js.map +1 -1
- package/dist/utils/index.js +0 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/junit-generator.js +0 -18
- package/dist/utils/junit-generator.js.map +1 -1
- package/package-tar/teambit-tester-0.0.882.tgz +0 -0
- package/package.json +15 -15
- package/{preview-1666312873430.js → preview-1666496165706.js} +2 -2
- package/package-tar/teambit-tester-0.0.880.tgz +0 -0
|
@@ -1,210 +1,147 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.array.flat.js");
|
|
6
|
-
|
|
7
5
|
require("core-js/modules/es.array.iterator.js");
|
|
8
|
-
|
|
9
6
|
require("core-js/modules/es.array.unscopables.flat.js");
|
|
10
|
-
|
|
11
7
|
require("core-js/modules/es.promise.js");
|
|
12
|
-
|
|
13
8
|
Object.defineProperty(exports, "__esModule", {
|
|
14
9
|
value: true
|
|
15
10
|
});
|
|
16
11
|
exports.TesterMain = void 0;
|
|
17
|
-
|
|
18
12
|
function _defineProperty2() {
|
|
19
13
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
|
-
|
|
21
14
|
_defineProperty2 = function () {
|
|
22
15
|
return data;
|
|
23
16
|
};
|
|
24
|
-
|
|
25
17
|
return data;
|
|
26
18
|
}
|
|
27
|
-
|
|
28
19
|
function _fsExtra() {
|
|
29
20
|
const data = _interopRequireDefault(require("fs-extra"));
|
|
30
|
-
|
|
31
21
|
_fsExtra = function () {
|
|
32
22
|
return data;
|
|
33
23
|
};
|
|
34
|
-
|
|
35
24
|
return data;
|
|
36
25
|
}
|
|
37
|
-
|
|
38
26
|
function _cli() {
|
|
39
27
|
const data = require("@teambit/cli");
|
|
40
|
-
|
|
41
28
|
_cli = function () {
|
|
42
29
|
return data;
|
|
43
30
|
};
|
|
44
|
-
|
|
45
31
|
return data;
|
|
46
32
|
}
|
|
47
|
-
|
|
48
33
|
function _lodash() {
|
|
49
34
|
const data = _interopRequireDefault(require("lodash.compact"));
|
|
50
|
-
|
|
51
35
|
_lodash = function () {
|
|
52
36
|
return data;
|
|
53
37
|
};
|
|
54
|
-
|
|
55
38
|
return data;
|
|
56
39
|
}
|
|
57
|
-
|
|
58
40
|
function _envs() {
|
|
59
41
|
const data = require("@teambit/envs");
|
|
60
|
-
|
|
61
42
|
_envs = function () {
|
|
62
43
|
return data;
|
|
63
44
|
};
|
|
64
|
-
|
|
65
45
|
return data;
|
|
66
46
|
}
|
|
67
|
-
|
|
68
47
|
function _logger() {
|
|
69
48
|
const data = require("@teambit/logger");
|
|
70
|
-
|
|
71
49
|
_logger = function () {
|
|
72
50
|
return data;
|
|
73
51
|
};
|
|
74
|
-
|
|
75
52
|
return data;
|
|
76
53
|
}
|
|
77
|
-
|
|
78
54
|
function _workspace() {
|
|
79
55
|
const data = require("@teambit/workspace");
|
|
80
|
-
|
|
81
56
|
_workspace = function () {
|
|
82
57
|
return data;
|
|
83
58
|
};
|
|
84
|
-
|
|
85
59
|
return data;
|
|
86
60
|
}
|
|
87
|
-
|
|
88
61
|
function _graphql() {
|
|
89
62
|
const data = require("@teambit/graphql");
|
|
90
|
-
|
|
91
63
|
_graphql = function () {
|
|
92
64
|
return data;
|
|
93
65
|
};
|
|
94
|
-
|
|
95
66
|
return data;
|
|
96
67
|
}
|
|
97
|
-
|
|
98
68
|
function _builder() {
|
|
99
69
|
const data = require("@teambit/builder");
|
|
100
|
-
|
|
101
70
|
_builder = function () {
|
|
102
71
|
return data;
|
|
103
72
|
};
|
|
104
|
-
|
|
105
73
|
return data;
|
|
106
74
|
}
|
|
107
|
-
|
|
108
75
|
function _ui() {
|
|
109
76
|
const data = require("@teambit/ui");
|
|
110
|
-
|
|
111
77
|
_ui = function () {
|
|
112
78
|
return data;
|
|
113
79
|
};
|
|
114
|
-
|
|
115
80
|
return data;
|
|
116
81
|
}
|
|
117
|
-
|
|
118
82
|
function _lodash2() {
|
|
119
83
|
const data = require("lodash");
|
|
120
|
-
|
|
121
84
|
_lodash2 = function () {
|
|
122
85
|
return data;
|
|
123
86
|
};
|
|
124
|
-
|
|
125
87
|
return data;
|
|
126
88
|
}
|
|
127
|
-
|
|
128
89
|
function _devFiles() {
|
|
129
90
|
const data = _interopRequireDefault(require("@teambit/dev-files"));
|
|
130
|
-
|
|
131
91
|
_devFiles = function () {
|
|
132
92
|
return data;
|
|
133
93
|
};
|
|
134
|
-
|
|
135
94
|
return data;
|
|
136
95
|
}
|
|
137
|
-
|
|
138
96
|
function _test() {
|
|
139
97
|
const data = require("./test.cmd");
|
|
140
|
-
|
|
141
98
|
_test = function () {
|
|
142
99
|
return data;
|
|
143
100
|
};
|
|
144
|
-
|
|
145
101
|
return data;
|
|
146
102
|
}
|
|
147
|
-
|
|
148
103
|
function _tester() {
|
|
149
104
|
const data = require("./tester.aspect");
|
|
150
|
-
|
|
151
105
|
_tester = function () {
|
|
152
106
|
return data;
|
|
153
107
|
};
|
|
154
|
-
|
|
155
108
|
return data;
|
|
156
109
|
}
|
|
157
|
-
|
|
158
110
|
function _tester2() {
|
|
159
111
|
const data = require("./tester.service");
|
|
160
|
-
|
|
161
112
|
_tester2 = function () {
|
|
162
113
|
return data;
|
|
163
114
|
};
|
|
164
|
-
|
|
165
115
|
return data;
|
|
166
116
|
}
|
|
167
|
-
|
|
168
117
|
function _tester3() {
|
|
169
118
|
const data = require("./tester.task");
|
|
170
|
-
|
|
171
119
|
_tester3 = function () {
|
|
172
120
|
return data;
|
|
173
121
|
};
|
|
174
|
-
|
|
175
122
|
return data;
|
|
176
123
|
}
|
|
177
|
-
|
|
178
124
|
function _utils() {
|
|
179
125
|
const data = require("./utils");
|
|
180
|
-
|
|
181
126
|
_utils = function () {
|
|
182
127
|
return data;
|
|
183
128
|
};
|
|
184
|
-
|
|
185
129
|
return data;
|
|
186
130
|
}
|
|
187
|
-
|
|
188
131
|
function _tester4() {
|
|
189
132
|
const data = require("./tester.graphql");
|
|
190
|
-
|
|
191
133
|
_tester4 = function () {
|
|
192
134
|
return data;
|
|
193
135
|
};
|
|
194
|
-
|
|
195
136
|
return data;
|
|
196
137
|
}
|
|
197
|
-
|
|
198
138
|
function _junitGenerator() {
|
|
199
139
|
const data = require("./utils/junit-generator");
|
|
200
|
-
|
|
201
140
|
_junitGenerator = function () {
|
|
202
141
|
return data;
|
|
203
142
|
};
|
|
204
|
-
|
|
205
143
|
return data;
|
|
206
144
|
}
|
|
207
|
-
|
|
208
145
|
class TesterMain {
|
|
209
146
|
constructor(patterns,
|
|
210
147
|
/**
|
|
@@ -237,46 +174,36 @@ class TesterMain {
|
|
|
237
174
|
this.builder = builder;
|
|
238
175
|
(0, _defineProperty2().default)(this, "_testsResults", []);
|
|
239
176
|
}
|
|
240
|
-
|
|
241
177
|
async test(components, opts) {
|
|
242
178
|
const options = this.getOptions(opts);
|
|
243
179
|
const envsRuntime = await this.envs.createEnvironment(components);
|
|
244
|
-
|
|
245
180
|
if (opts !== null && opts !== void 0 && opts.env) {
|
|
246
181
|
return envsRuntime.runEnv(opts.env, this.service, options);
|
|
247
182
|
}
|
|
248
|
-
|
|
249
183
|
const results = await envsRuntime.run(this.service, options);
|
|
250
|
-
|
|
251
184
|
if (opts !== null && opts !== void 0 && opts.junit) {
|
|
252
185
|
await this.generateJUnit(opts === null || opts === void 0 ? void 0 : opts.junit, results);
|
|
253
186
|
}
|
|
254
|
-
|
|
255
187
|
return results;
|
|
256
188
|
}
|
|
257
|
-
|
|
258
189
|
async generateJUnit(filePath, testsResults) {
|
|
259
190
|
const components = testsResults.results.map(envResult => {
|
|
260
191
|
var _envResult$data;
|
|
261
|
-
|
|
262
192
|
return (_envResult$data = envResult.data) === null || _envResult$data === void 0 ? void 0 : _envResult$data.components;
|
|
263
193
|
}).flat();
|
|
264
194
|
const jUnit = (0, _junitGenerator().testsResultsToJUnitFormat)((0, _lodash().default)(components));
|
|
265
195
|
await _fsExtra().default.outputFile(filePath, jUnit);
|
|
266
196
|
}
|
|
197
|
+
|
|
267
198
|
/**
|
|
268
199
|
* watch all components for changes and test upon each.
|
|
269
200
|
*/
|
|
270
|
-
|
|
271
|
-
|
|
272
201
|
async watch(components, opts) {
|
|
273
202
|
const options = this.getOptions(opts);
|
|
274
203
|
const envsRuntime = await this.envs.createEnvironment(components);
|
|
275
|
-
|
|
276
204
|
if (opts !== null && opts !== void 0 && opts.env) {
|
|
277
205
|
return envsRuntime.runEnv(opts.env, this.service, options);
|
|
278
206
|
}
|
|
279
|
-
|
|
280
207
|
this.service.onTestRunComplete(results => {
|
|
281
208
|
results.components.forEach(component => {
|
|
282
209
|
this._testsResults[component.componentId.toString()] = component;
|
|
@@ -284,7 +211,6 @@ class TesterMain {
|
|
|
284
211
|
});
|
|
285
212
|
return envsRuntime.run(this.service, options);
|
|
286
213
|
}
|
|
287
|
-
|
|
288
214
|
async uiWatch() {
|
|
289
215
|
const components = await this.workspace.list();
|
|
290
216
|
return this.watch(components, {
|
|
@@ -293,58 +219,48 @@ class TesterMain {
|
|
|
293
219
|
ui: true
|
|
294
220
|
});
|
|
295
221
|
}
|
|
296
|
-
|
|
297
222
|
async getTestsResults(component, idHasVersion = true) {
|
|
298
223
|
const entry = component.get(_tester().TesterAspect.id);
|
|
299
224
|
const isModified = !idHasVersion && (await component.isModified());
|
|
300
225
|
const data = this.builder.getDataByAspect(component, _tester().TesterAspect.id);
|
|
301
|
-
|
|
302
226
|
if ((entry || data) && !isModified) {
|
|
303
227
|
return {
|
|
304
228
|
testsResults: (data === null || data === void 0 ? void 0 : data.tests) || (entry === null || entry === void 0 ? void 0 : entry.data.tests),
|
|
305
229
|
loading: false
|
|
306
230
|
};
|
|
307
231
|
}
|
|
308
|
-
|
|
309
232
|
return this.getTestsResultsFromState(component);
|
|
310
233
|
}
|
|
311
|
-
|
|
312
234
|
getTestsResultsFromState(component) {
|
|
313
235
|
const tests = this._testsResults[component.id.toString()];
|
|
314
|
-
|
|
315
236
|
return {
|
|
316
237
|
testsResults: tests === null || tests === void 0 ? void 0 : tests.results,
|
|
317
238
|
loading: (tests === null || tests === void 0 ? void 0 : tests.loading) || false
|
|
318
239
|
};
|
|
319
240
|
}
|
|
241
|
+
|
|
320
242
|
/**
|
|
321
243
|
* Get the tests patterns from the config. (used as default patterns in case the env does not provide them via getTestsDevPatterns)
|
|
322
244
|
* @returns
|
|
323
245
|
*/
|
|
324
|
-
|
|
325
|
-
|
|
326
246
|
getPatterns() {
|
|
327
247
|
return this.patterns;
|
|
328
248
|
}
|
|
329
|
-
|
|
330
249
|
getComponentDevPatterns(component) {
|
|
331
250
|
const env = this.envs.calculateEnv(component).env;
|
|
332
251
|
const componentPatterns = env.getTestsDevPatterns ? env.getTestsDevPatterns(component) : this.getPatterns();
|
|
333
252
|
return componentPatterns;
|
|
334
253
|
}
|
|
335
|
-
|
|
336
254
|
getDevPatternToRegister() {
|
|
337
255
|
return this.getComponentDevPatterns.bind(this);
|
|
338
256
|
}
|
|
257
|
+
|
|
339
258
|
/**
|
|
340
259
|
* get all test files of a component.
|
|
341
260
|
*/
|
|
342
|
-
|
|
343
|
-
|
|
344
261
|
getTestFiles(component) {
|
|
345
262
|
return (0, _utils().detectTestFiles)(component, this.devFiles);
|
|
346
263
|
}
|
|
347
|
-
|
|
348
264
|
getOptions(options) {
|
|
349
265
|
const defaults = {
|
|
350
266
|
watch: false,
|
|
@@ -352,14 +268,12 @@ class TesterMain {
|
|
|
352
268
|
};
|
|
353
269
|
return (0, _lodash2().merge)(defaults, options);
|
|
354
270
|
}
|
|
355
|
-
|
|
356
271
|
static async provider([cli, envs, workspace, loggerAspect, graphql, ui, devFiles, builder], config) {
|
|
357
272
|
const logger = loggerAspect.createLogger(_tester().TesterAspect.id);
|
|
358
273
|
const testerService = new (_tester2().TesterService)(workspace, logger, graphql.pubsub, devFiles);
|
|
359
274
|
envs.registerService(testerService);
|
|
360
275
|
const tester = new TesterMain(config.patterns, graphql, envs, workspace, testerService, new (_tester3().TesterTask)(_tester().TesterAspect.id, devFiles), devFiles, builder);
|
|
361
276
|
devFiles.registerDevPattern(tester.getDevPatternToRegister());
|
|
362
|
-
|
|
363
277
|
if (workspace) {
|
|
364
278
|
ui.registerOnStart(async () => {
|
|
365
279
|
if (!config.watchOnStart) return undefined;
|
|
@@ -367,14 +281,11 @@ class TesterMain {
|
|
|
367
281
|
return undefined;
|
|
368
282
|
});
|
|
369
283
|
}
|
|
370
|
-
|
|
371
284
|
cli.register(new (_test().TestCmd)(tester, workspace, logger));
|
|
372
285
|
graphql.register((0, _tester4().testerSchema)(tester, graphql));
|
|
373
286
|
return tester;
|
|
374
287
|
}
|
|
375
|
-
|
|
376
288
|
}
|
|
377
|
-
|
|
378
289
|
exports.TesterMain = TesterMain;
|
|
379
290
|
(0, _defineProperty2().default)(TesterMain, "runtime", _cli().MainRuntime);
|
|
380
291
|
(0, _defineProperty2().default)(TesterMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _logger().LoggerAspect, _graphql().GraphqlAspect, _ui().UIAspect, _devFiles().default, _builder().BuilderAspect]);
|
|
@@ -383,13 +294,11 @@ exports.TesterMain = TesterMain;
|
|
|
383
294
|
* default test regex for which files tester to apply on.
|
|
384
295
|
*/
|
|
385
296
|
patterns: ['**/*.spec.+(js|ts|jsx|tsx)', '**/*.test.+(js|ts|jsx|tsx)'],
|
|
386
|
-
|
|
387
297
|
/**
|
|
388
298
|
* determine whether to watch on start.
|
|
389
299
|
*/
|
|
390
300
|
watchOnStart: true
|
|
391
301
|
});
|
|
392
|
-
|
|
393
302
|
_tester().TesterAspect.addRuntime(TesterMain);
|
|
394
303
|
|
|
395
304
|
//# sourceMappingURL=tester.main.runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TesterMain","constructor","patterns","graphql","envs","workspace","service","task","devFiles","builder","test","components","opts","options","getOptions","envsRuntime","createEnvironment","env","runEnv","results","run","junit","generateJUnit","filePath","testsResults","map","envResult","data","flat","jUnit","testsResultsToJUnitFormat","compact","fs","outputFile","watch","onTestRunComplete","forEach","component","_testsResults","componentId","toString","uiWatch","list","debug","ui","getTestsResults","idHasVersion","entry","get","TesterAspect","id","isModified","getDataByAspect","tests","loading","getTestsResultsFromState","getPatterns","getComponentDevPatterns","calculateEnv","componentPatterns","getTestsDevPatterns","getDevPatternToRegister","bind","getTestFiles","detectTestFiles","defaults","merge","provider","cli","loggerAspect","config","logger","createLogger","testerService","TesterService","pubsub","registerService","tester","TesterTask","registerDevPattern","registerOnStart","watchOnStart","undefined","register","TestCmd","testerSchema","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","LoggerAspect","GraphqlAspect","UIAspect","DevFilesAspect","BuilderAspect","addRuntime"],"sources":["tester.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, IComponent } from '@teambit/component';\nimport compact from 'lodash.compact';\nimport { EnvsAspect, EnvsExecutionResult, EnvsMain } from '@teambit/envs';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { UiMain, UIAspect } from '@teambit/ui';\nimport { merge } from 'lodash';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { TestsResult } from '@teambit/tests-results';\nimport { ComponentsResults, CallbackFn, Tests } from './tester';\nimport { TestCmd } from './test.cmd';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterService } from './tester.service';\nimport { TesterTask } from './tester.task';\nimport { detectTestFiles } from './utils';\nimport { testerSchema } from './tester.graphql';\nimport { testsResultsToJUnitFormat } from './utils/junit-generator';\n\nexport type TesterExtensionConfig = {\n /**\n * regex of the text environment.\n */\n testRegex: string;\n\n /**\n * determine whether to watch on start.\n */\n watchOnStart: boolean;\n patterns: string[];\n};\n\nexport type TesterOptions = {\n /**\n * start the tester in watch mode.\n */\n watch: boolean;\n\n /**\n * start the tester in debug mode.\n */\n debug: boolean;\n\n /**\n * start the tester in debug mode.\n */\n ui?: boolean;\n\n /**\n * initiate the tester on given env.\n */\n env?: string;\n\n /**\n * generate JUnit files on the specified dir\n */\n junit?: string;\n\n /**\n * show code coverage\n */\n coverage?: boolean;\n\n callback?: CallbackFn;\n};\n\nexport class TesterMain {\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n DevFilesAspect,\n BuilderAspect,\n ];\n\n constructor(\n private patterns: string[],\n /**\n * graphql extension.\n */\n private graphql: GraphqlMain,\n\n /**\n * envs extension.\n */\n private envs: EnvsMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * tester service.\n */\n readonly service: TesterService,\n\n /**\n * build task.\n */\n readonly task: TesterTask,\n\n private devFiles: DevFilesMain,\n\n private builder: BuilderMain\n ) {}\n\n _testsResults: { [componentId: string]: ComponentsResults } | undefined[] = [];\n\n async test(components: Component[], opts?: TesterOptions): Promise<EnvsExecutionResult<Tests>> {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n const results = await envsRuntime.run(this.service, options);\n if (opts?.junit) {\n await this.generateJUnit(opts?.junit, results);\n }\n return results;\n }\n\n private async generateJUnit(filePath: string, testsResults: EnvsExecutionResult<Tests>) {\n const components = testsResults.results.map((envResult) => envResult.data?.components).flat();\n const jUnit = testsResultsToJUnitFormat(compact(components));\n await fs.outputFile(filePath, jUnit);\n }\n\n /**\n * watch all components for changes and test upon each.\n */\n async watch(components: Component[], opts?: TesterOptions) {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n\n this.service.onTestRunComplete((results) => {\n results.components.forEach((component) => {\n this._testsResults[component.componentId.toString()] = component;\n });\n });\n return envsRuntime.run(this.service, options);\n }\n\n async uiWatch() {\n const components = await this.workspace.list();\n return this.watch(components, { watch: true, debug: false, ui: true });\n }\n\n async getTestsResults(\n component: IComponent,\n idHasVersion = true\n ): Promise<{ testsResults?: TestsResult; loading: boolean } | undefined> {\n const entry = component.get(TesterAspect.id);\n const isModified = !idHasVersion && (await component.isModified());\n const data = this.builder.getDataByAspect(component, TesterAspect.id) as { tests: TestsResult };\n if ((entry || data) && !isModified) {\n return { testsResults: data?.tests || entry?.data.tests, loading: false };\n }\n return this.getTestsResultsFromState(component);\n }\n\n private getTestsResultsFromState(component: IComponent) {\n const tests = this._testsResults[component.id.toString()];\n return { testsResults: tests?.results, loading: tests?.loading || false };\n }\n\n /**\n * Get the tests patterns from the config. (used as default patterns in case the env does not provide them via getTestsDevPatterns)\n * @returns\n */\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentPatterns: string[] = env.getTestsDevPatterns\n ? env.getTestsDevPatterns(component)\n : this.getPatterns();\n return componentPatterns;\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n\n /**\n * get all test files of a component.\n */\n getTestFiles(component: Component) {\n return detectTestFiles(component, this.devFiles);\n }\n\n private getOptions(options?: TesterOptions): TesterOptions {\n const defaults = {\n watch: false,\n debug: false,\n };\n\n return merge(defaults, options);\n }\n\n static defaultConfig = {\n /**\n * default test regex for which files tester to apply on.\n */\n patterns: ['**/*.spec.+(js|ts|jsx|tsx)', '**/*.test.+(js|ts|jsx|tsx)'],\n\n /**\n * determine whether to watch on start.\n */\n watchOnStart: true,\n };\n\n static async provider(\n [cli, envs, workspace, loggerAspect, graphql, ui, devFiles, builder]: [\n CLIMain,\n EnvsMain,\n Workspace,\n LoggerMain,\n GraphqlMain,\n UiMain,\n DevFilesMain,\n BuilderMain\n ],\n config: TesterExtensionConfig\n ) {\n const logger = loggerAspect.createLogger(TesterAspect.id);\n const testerService = new TesterService(workspace, logger, graphql.pubsub, devFiles);\n envs.registerService(testerService);\n const tester = new TesterMain(\n config.patterns,\n graphql,\n envs,\n workspace,\n testerService,\n new TesterTask(TesterAspect.id, devFiles),\n devFiles,\n builder\n );\n devFiles.registerDevPattern(tester.getDevPatternToRegister());\n\n if (workspace) {\n ui.registerOnStart(async () => {\n if (!config.watchOnStart) return undefined;\n await tester.uiWatch();\n return undefined;\n });\n }\n cli.register(new TestCmd(tester, workspace, logger));\n\n graphql.register(testerSchema(tester, graphql));\n\n return tester;\n }\n}\n\nTesterAspect.addRuntime(TesterMain);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["TesterMain","constructor","patterns","graphql","envs","workspace","service","task","devFiles","builder","test","components","opts","options","getOptions","envsRuntime","createEnvironment","env","runEnv","results","run","junit","generateJUnit","filePath","testsResults","map","envResult","data","flat","jUnit","testsResultsToJUnitFormat","compact","fs","outputFile","watch","onTestRunComplete","forEach","component","_testsResults","componentId","toString","uiWatch","list","debug","ui","getTestsResults","idHasVersion","entry","get","TesterAspect","id","isModified","getDataByAspect","tests","loading","getTestsResultsFromState","getPatterns","getComponentDevPatterns","calculateEnv","componentPatterns","getTestsDevPatterns","getDevPatternToRegister","bind","getTestFiles","detectTestFiles","defaults","merge","provider","cli","loggerAspect","config","logger","createLogger","testerService","TesterService","pubsub","registerService","tester","TesterTask","registerDevPattern","registerOnStart","watchOnStart","undefined","register","TestCmd","testerSchema","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","LoggerAspect","GraphqlAspect","UIAspect","DevFilesAspect","BuilderAspect","addRuntime"],"sources":["tester.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, IComponent } from '@teambit/component';\nimport compact from 'lodash.compact';\nimport { EnvsAspect, EnvsExecutionResult, EnvsMain } from '@teambit/envs';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { UiMain, UIAspect } from '@teambit/ui';\nimport { merge } from 'lodash';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { TestsResult } from '@teambit/tests-results';\nimport { ComponentsResults, CallbackFn, Tests } from './tester';\nimport { TestCmd } from './test.cmd';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterService } from './tester.service';\nimport { TesterTask } from './tester.task';\nimport { detectTestFiles } from './utils';\nimport { testerSchema } from './tester.graphql';\nimport { testsResultsToJUnitFormat } from './utils/junit-generator';\n\nexport type TesterExtensionConfig = {\n /**\n * regex of the text environment.\n */\n testRegex: string;\n\n /**\n * determine whether to watch on start.\n */\n watchOnStart: boolean;\n patterns: string[];\n};\n\nexport type TesterOptions = {\n /**\n * start the tester in watch mode.\n */\n watch: boolean;\n\n /**\n * start the tester in debug mode.\n */\n debug: boolean;\n\n /**\n * start the tester in debug mode.\n */\n ui?: boolean;\n\n /**\n * initiate the tester on given env.\n */\n env?: string;\n\n /**\n * generate JUnit files on the specified dir\n */\n junit?: string;\n\n /**\n * show code coverage\n */\n coverage?: boolean;\n\n callback?: CallbackFn;\n};\n\nexport class TesterMain {\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n DevFilesAspect,\n BuilderAspect,\n ];\n\n constructor(\n private patterns: string[],\n /**\n * graphql extension.\n */\n private graphql: GraphqlMain,\n\n /**\n * envs extension.\n */\n private envs: EnvsMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * tester service.\n */\n readonly service: TesterService,\n\n /**\n * build task.\n */\n readonly task: TesterTask,\n\n private devFiles: DevFilesMain,\n\n private builder: BuilderMain\n ) {}\n\n _testsResults: { [componentId: string]: ComponentsResults } | undefined[] = [];\n\n async test(components: Component[], opts?: TesterOptions): Promise<EnvsExecutionResult<Tests>> {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n const results = await envsRuntime.run(this.service, options);\n if (opts?.junit) {\n await this.generateJUnit(opts?.junit, results);\n }\n return results;\n }\n\n private async generateJUnit(filePath: string, testsResults: EnvsExecutionResult<Tests>) {\n const components = testsResults.results.map((envResult) => envResult.data?.components).flat();\n const jUnit = testsResultsToJUnitFormat(compact(components));\n await fs.outputFile(filePath, jUnit);\n }\n\n /**\n * watch all components for changes and test upon each.\n */\n async watch(components: Component[], opts?: TesterOptions) {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n\n this.service.onTestRunComplete((results) => {\n results.components.forEach((component) => {\n this._testsResults[component.componentId.toString()] = component;\n });\n });\n return envsRuntime.run(this.service, options);\n }\n\n async uiWatch() {\n const components = await this.workspace.list();\n return this.watch(components, { watch: true, debug: false, ui: true });\n }\n\n async getTestsResults(\n component: IComponent,\n idHasVersion = true\n ): Promise<{ testsResults?: TestsResult; loading: boolean } | undefined> {\n const entry = component.get(TesterAspect.id);\n const isModified = !idHasVersion && (await component.isModified());\n const data = this.builder.getDataByAspect(component, TesterAspect.id) as { tests: TestsResult };\n if ((entry || data) && !isModified) {\n return { testsResults: data?.tests || entry?.data.tests, loading: false };\n }\n return this.getTestsResultsFromState(component);\n }\n\n private getTestsResultsFromState(component: IComponent) {\n const tests = this._testsResults[component.id.toString()];\n return { testsResults: tests?.results, loading: tests?.loading || false };\n }\n\n /**\n * Get the tests patterns from the config. (used as default patterns in case the env does not provide them via getTestsDevPatterns)\n * @returns\n */\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentPatterns: string[] = env.getTestsDevPatterns\n ? env.getTestsDevPatterns(component)\n : this.getPatterns();\n return componentPatterns;\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n\n /**\n * get all test files of a component.\n */\n getTestFiles(component: Component) {\n return detectTestFiles(component, this.devFiles);\n }\n\n private getOptions(options?: TesterOptions): TesterOptions {\n const defaults = {\n watch: false,\n debug: false,\n };\n\n return merge(defaults, options);\n }\n\n static defaultConfig = {\n /**\n * default test regex for which files tester to apply on.\n */\n patterns: ['**/*.spec.+(js|ts|jsx|tsx)', '**/*.test.+(js|ts|jsx|tsx)'],\n\n /**\n * determine whether to watch on start.\n */\n watchOnStart: true,\n };\n\n static async provider(\n [cli, envs, workspace, loggerAspect, graphql, ui, devFiles, builder]: [\n CLIMain,\n EnvsMain,\n Workspace,\n LoggerMain,\n GraphqlMain,\n UiMain,\n DevFilesMain,\n BuilderMain\n ],\n config: TesterExtensionConfig\n ) {\n const logger = loggerAspect.createLogger(TesterAspect.id);\n const testerService = new TesterService(workspace, logger, graphql.pubsub, devFiles);\n envs.registerService(testerService);\n const tester = new TesterMain(\n config.patterns,\n graphql,\n envs,\n workspace,\n testerService,\n new TesterTask(TesterAspect.id, devFiles),\n devFiles,\n builder\n );\n devFiles.registerDevPattern(tester.getDevPatternToRegister());\n\n if (workspace) {\n ui.registerOnStart(async () => {\n if (!config.watchOnStart) return undefined;\n await tester.uiWatch();\n return undefined;\n });\n }\n cli.register(new TestCmd(tester, workspace, logger));\n\n graphql.register(testerSchema(tester, graphql));\n\n return tester;\n }\n}\n\nTesterAspect.addRuntime(TesterMain);\n"],"mappings":"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"}
|
package/dist/tester.service.js
CHANGED
|
@@ -1,111 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
|
|
7
5
|
require("core-js/modules/es.promise.js");
|
|
8
|
-
|
|
9
6
|
Object.defineProperty(exports, "__esModule", {
|
|
10
7
|
value: true
|
|
11
8
|
});
|
|
12
9
|
exports.TesterService = exports.OnTestsChanged = void 0;
|
|
13
|
-
|
|
14
10
|
function _defineProperty2() {
|
|
15
11
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
-
|
|
17
12
|
_defineProperty2 = function () {
|
|
18
13
|
return data;
|
|
19
14
|
};
|
|
20
|
-
|
|
21
15
|
return data;
|
|
22
16
|
}
|
|
23
|
-
|
|
24
17
|
function _path() {
|
|
25
18
|
const data = require("path");
|
|
26
|
-
|
|
27
19
|
_path = function () {
|
|
28
20
|
return data;
|
|
29
21
|
};
|
|
30
|
-
|
|
31
22
|
return data;
|
|
32
23
|
}
|
|
33
|
-
|
|
34
24
|
function _react() {
|
|
35
25
|
const data = _interopRequireDefault(require("react"));
|
|
36
|
-
|
|
37
26
|
_react = function () {
|
|
38
27
|
return data;
|
|
39
28
|
};
|
|
40
|
-
|
|
41
29
|
return data;
|
|
42
30
|
}
|
|
43
|
-
|
|
44
31
|
function _ink() {
|
|
45
32
|
const data = require("ink");
|
|
46
|
-
|
|
47
33
|
_ink = function () {
|
|
48
34
|
return data;
|
|
49
35
|
};
|
|
50
|
-
|
|
51
36
|
return data;
|
|
52
37
|
}
|
|
53
|
-
|
|
54
38
|
function _component() {
|
|
55
39
|
const data = require("@teambit/component");
|
|
56
|
-
|
|
57
40
|
_component = function () {
|
|
58
41
|
return data;
|
|
59
42
|
};
|
|
60
|
-
|
|
61
43
|
return data;
|
|
62
44
|
}
|
|
63
|
-
|
|
64
45
|
function _cliHighlight() {
|
|
65
46
|
const data = _interopRequireDefault(require("cli-highlight"));
|
|
66
|
-
|
|
67
47
|
_cliHighlight = function () {
|
|
68
48
|
return data;
|
|
69
49
|
};
|
|
70
|
-
|
|
71
50
|
return data;
|
|
72
51
|
}
|
|
73
|
-
|
|
74
52
|
function _tester() {
|
|
75
53
|
const data = require("./tester");
|
|
76
|
-
|
|
77
54
|
_tester = function () {
|
|
78
55
|
return data;
|
|
79
56
|
};
|
|
80
|
-
|
|
81
57
|
return data;
|
|
82
58
|
}
|
|
83
|
-
|
|
84
59
|
function _tester2() {
|
|
85
60
|
const data = require("./tester.aspect");
|
|
86
|
-
|
|
87
61
|
_tester2 = function () {
|
|
88
62
|
return data;
|
|
89
63
|
};
|
|
90
|
-
|
|
91
64
|
return data;
|
|
92
65
|
}
|
|
93
|
-
|
|
94
66
|
function _utils() {
|
|
95
67
|
const data = require("./utils");
|
|
96
|
-
|
|
97
68
|
_utils = function () {
|
|
98
69
|
return data;
|
|
99
70
|
};
|
|
100
|
-
|
|
101
71
|
return data;
|
|
102
72
|
}
|
|
103
|
-
|
|
104
73
|
const chalk = require('chalk');
|
|
105
|
-
|
|
106
74
|
const OnTestsChanged = 'OnTestsChanged';
|
|
107
75
|
exports.OnTestsChanged = OnTestsChanged;
|
|
108
|
-
|
|
109
76
|
class TesterService {
|
|
110
77
|
constructor(workspace, logger, pubsub, devFiles) {
|
|
111
78
|
this.workspace = workspace;
|
|
@@ -115,7 +82,6 @@ class TesterService {
|
|
|
115
82
|
(0, _defineProperty2().default)(this, "name", 'tester');
|
|
116
83
|
(0, _defineProperty2().default)(this, "_callback", void 0);
|
|
117
84
|
}
|
|
118
|
-
|
|
119
85
|
render(env) {
|
|
120
86
|
const descriptor = this.getDescriptor(env);
|
|
121
87
|
return /*#__PURE__*/_react().default.createElement(_ink().Text, {
|
|
@@ -130,7 +96,6 @@ class TesterService {
|
|
|
130
96
|
ignoreIllegals: true
|
|
131
97
|
})), /*#__PURE__*/_react().default.createElement(_ink().Newline, null));
|
|
132
98
|
}
|
|
133
|
-
|
|
134
99
|
getDescriptor(environment) {
|
|
135
100
|
if (!environment.env.getTester) return undefined;
|
|
136
101
|
const tester = environment.env.getTester();
|
|
@@ -142,31 +107,24 @@ class TesterService {
|
|
|
142
107
|
version: tester.version ? tester.version() : '?'
|
|
143
108
|
};
|
|
144
109
|
}
|
|
145
|
-
|
|
146
110
|
onTestRunComplete(callback) {
|
|
147
111
|
this._callback = callback;
|
|
148
112
|
}
|
|
149
|
-
|
|
150
113
|
async run(context, options) {
|
|
151
114
|
const tester = context.env.getTester();
|
|
152
|
-
|
|
153
115
|
const specFiles = _component().ComponentMap.as(context.components, component => {
|
|
154
116
|
return (0, _utils().detectTestFiles)(component, this.devFiles);
|
|
155
117
|
});
|
|
156
|
-
|
|
157
118
|
const testCount = specFiles.toArray().reduce((acc, [, specs]) => acc + specs.length, 0);
|
|
158
119
|
const componentWithTests = specFiles.toArray().reduce((acc, [, specs]) => {
|
|
159
120
|
if (specs.length > 0) acc += 1;
|
|
160
121
|
return acc;
|
|
161
122
|
}, 0);
|
|
162
|
-
|
|
163
123
|
if (testCount === 0 && !options.ui) {
|
|
164
124
|
this.logger.consoleWarning(`no tests found for environment ${chalk.cyan(context.id)}\n`);
|
|
165
125
|
return new (_tester().Tests)([]);
|
|
166
126
|
}
|
|
167
|
-
|
|
168
127
|
if (!options.ui) this.logger.console(`testing ${componentWithTests} components with environment ${chalk.cyan(context.id)}\n`);
|
|
169
|
-
|
|
170
128
|
const patterns = _component().ComponentMap.as(context.components, component => {
|
|
171
129
|
const componentDir = this.workspace.componentDir(component.id);
|
|
172
130
|
const componentPatterns = this.devFiles.getDevPatterns(component, _tester2().TesterAspect.id);
|
|
@@ -178,13 +136,10 @@ class TesterService {
|
|
|
178
136
|
})) || []
|
|
179
137
|
};
|
|
180
138
|
});
|
|
181
|
-
|
|
182
139
|
let additionalHostDependencies = [];
|
|
183
|
-
|
|
184
140
|
if (context.env.getAdditionalTestHostDependencies && typeof context.env.getAdditionalTestHostDependencies === 'function') {
|
|
185
141
|
additionalHostDependencies = await context.env.getAdditionalTestHostDependencies();
|
|
186
142
|
}
|
|
187
|
-
|
|
188
143
|
const testerContext = Object.assign(context, {
|
|
189
144
|
release: false,
|
|
190
145
|
specFiles,
|
|
@@ -197,7 +152,6 @@ class TesterService {
|
|
|
197
152
|
coverage: options.coverage,
|
|
198
153
|
additionalHostDependencies
|
|
199
154
|
});
|
|
200
|
-
|
|
201
155
|
if (options.watch && options.ui && tester.watch) {
|
|
202
156
|
if (tester.onTestRunComplete) {
|
|
203
157
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
@@ -215,16 +169,12 @@ class TesterService {
|
|
|
215
169
|
});
|
|
216
170
|
});
|
|
217
171
|
}
|
|
218
|
-
|
|
219
172
|
return tester.watch(testerContext);
|
|
220
173
|
}
|
|
221
|
-
|
|
222
174
|
const results = await tester.test(testerContext);
|
|
223
175
|
return results;
|
|
224
176
|
}
|
|
225
|
-
|
|
226
177
|
}
|
|
227
|
-
|
|
228
178
|
exports.TesterService = TesterService;
|
|
229
179
|
|
|
230
180
|
//# sourceMappingURL=tester.service.js.map
|