@teambit/tester 1.0.565 → 1.0.567

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.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.defender_tester@1.0.565/dist/tester.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.defender_tester@1.0.565/dist/tester.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.defender_tester@1.0.567/dist/tester.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.defender_tester@1.0.567/dist/tester.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,4 +1,4 @@
1
- import { Command, CommandOptions } from '@teambit/cli';
1
+ import { Command, CommandOptions, GenericObject } from '@teambit/cli';
2
2
  import { Logger } from '@teambit/logger';
3
3
  import { Workspace } from '@teambit/workspace';
4
4
  import type { TesterMain } from './tester.main.runtime';
@@ -32,5 +32,6 @@ export declare class TestCmd implements Command {
32
32
  code: number;
33
33
  data: string;
34
34
  }>;
35
+ json([userPattern]: [string], { watch, debug, env, junit, coverage, unmodified, updateSnapshot, }: TestFlags): Promise<GenericObject>;
35
36
  }
36
37
  export {};
package/dist/test.cmd.js CHANGED
@@ -33,6 +33,8 @@ function _legacy() {
33
33
  return data;
34
34
  }
35
35
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
36
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36
38
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
37
39
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
38
40
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -50,7 +52,7 @@ class TestCmd {
50
52
  }]);
51
53
  _defineProperty(this, "alias", 'at');
52
54
  _defineProperty(this, "group", 'development');
53
- _defineProperty(this, "options", [['w', 'watch', 'start the tester in watch mode.'], ['d', 'debug', 'start the tester in debug mode.'], ['a', 'all', 'DEPRECATED. (use --unmodified)'], ['u', 'unmodified', 'test all components, not only new and modified'], ['', 'junit <filepath>', 'write tests results as JUnit XML format into the specified file path'], ['', 'coverage', 'show code coverage data'], ['e', 'env <id>', 'test only components assigned the given env'], ['', 'update-snapshot', 'if supported by the tester, re-record every snapshot that fails during the test run'], ['s', 'scope <scope-name>', 'DEPRECATED. (use the pattern instead, e.g. "scopeName/**"). name of the scope to test']
55
+ _defineProperty(this, "options", [['w', 'watch', 'start the tester in watch mode.'], ['d', 'debug', 'start the tester in debug mode.'], ['a', 'all', 'DEPRECATED. (use --unmodified)'], ['u', 'unmodified', 'test all components, not only new and modified'], ['', 'junit <filepath>', 'write tests results as JUnit XML format into the specified file path'], ['', 'coverage', 'show code coverage data'], ['e', 'env <id>', 'test only components assigned the given env'], ['', 'update-snapshot', 'if supported by the tester, re-record every snapshot that fails during the test run'], ['s', 'scope <scope-name>', 'DEPRECATED. (use the pattern instead, e.g. "scopeName/**"). name of the scope to test'], ['j', 'json', 'return the results in json format']
54
56
  // TODO: we need to reduce this redundant casting every time.
55
57
  ]);
56
58
  }
@@ -131,7 +133,104 @@ otherwise, only new and modified components will be tested`);
131
133
  data
132
134
  };
133
135
  }
136
+ async json([userPattern], {
137
+ watch = false,
138
+ debug = false,
139
+ env,
140
+ junit,
141
+ coverage = false,
142
+ unmodified = false,
143
+ updateSnapshot = false
144
+ }) {
145
+ const timer = _toolboxTime().Timer.create();
146
+ timer.start();
147
+ if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
148
+ const getPatternWithScope = () => {
149
+ if (!userPattern) return undefined;
150
+ const pattern = userPattern || '**';
151
+ return pattern;
152
+ };
153
+ const patternWithScope = getPatternWithScope();
154
+ const components = await this.workspace.getComponentsByUserInput(unmodified, patternWithScope, true);
155
+ if (!components.length) {
156
+ this.logger.info(`no components found to test.
157
+ use "--unmodified" flag to test all components or specify the ids to test.
158
+ otherwise, only new and modified components will be tested`);
159
+ return {
160
+ code: 0,
161
+ data: []
162
+ };
163
+ }
164
+ let code = 0;
165
+ const restore = silenceConsoleAndStdout();
166
+ let tests;
167
+ try {
168
+ tests = await this.tester.test(components, {
169
+ watch,
170
+ debug,
171
+ env,
172
+ junit,
173
+ coverage,
174
+ updateSnapshot
175
+ });
176
+ } catch (err) {
177
+ restore();
178
+ throw err;
179
+ }
180
+ restore();
181
+ if (tests.hasErrors()) code = 1;
182
+ if (process.exitCode && process.exitCode !== 0 && typeof process.exitCode === 'number') {
183
+ // this is needed for testers such as "vitest", where it sets the exitCode to non zero when the coverage is not met.
184
+ code = process.exitCode;
185
+ }
186
+ const data = tests.results.map(r => ({
187
+ data: {
188
+ components: r.data?.components.map(c => _objectSpread(_objectSpread({}, c), {}, {
189
+ componentId: c.componentId.toString()
190
+ })),
191
+ errors: r.data?.errors
192
+ },
193
+ error: r.error
194
+ }));
195
+ return {
196
+ code,
197
+ data
198
+ };
199
+ }
134
200
  }
201
+
202
+ /**
203
+ * Disables all console logging (via console.*) and direct writes to
204
+ * process.stdout / process.stderr. Returns a function that, when called,
205
+ * restores everything back to normal.
206
+ */
135
207
  exports.TestCmd = TestCmd;
208
+ function silenceConsoleAndStdout() {
209
+ // Keep copies of the original methods so we can restore them later
210
+ const originalConsole = _objectSpread({}, console);
211
+ const originalStdoutWrite = process.stdout.write;
212
+ const originalStderrWrite = process.stderr.write;
213
+
214
+ // No-op implementations for console.* methods
215
+ for (const method of ["log", "warn", "error", "info", "debug"]) {
216
+ // eslint-disable-next-line no-console
217
+ console[method] = () => {};
218
+ }
219
+
220
+ // Replace process.stdout.write and process.stderr.write with no-ops
221
+ process.stdout.write = () => true;
222
+ process.stderr.write = () => true;
223
+
224
+ // Return a function to restore original behavior
225
+ return () => {
226
+ for (const method of Object.keys(originalConsole)) {
227
+ // @ts-ignore
228
+ // eslint-disable-next-line no-console
229
+ console[method] = originalConsole[method];
230
+ }
231
+ process.stdout.write = originalStdoutWrite;
232
+ process.stderr.write = originalStderrWrite;
233
+ };
234
+ }
136
235
 
137
236
  //# sourceMappingURL=test.cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_workspace","_toolboxTime","_legacy","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","TestCmd","constructor","tester","workspace","logger","name","description","COMPONENT_PATTERN_HELP","report","userPattern","watch","debug","all","env","scope","junit","coverage","unmodified","updateSnapshot","timer","Timer","create","scopeName","undefined","consoleWarning","start","OutsideWorkspaceError","getPatternWithScope","pattern","patternWithScope","components","getComponentsByUserInput","length","chalk","bold","code","console","cyan","off","tests","test","hasErrors","process","exitCode","seconds","stop","toString","exports"],"sources":["test.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { Timer } from '@teambit/toolbox.time.timer';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { TesterMain } from './tester.main.runtime';\n\ntype TestFlags = {\n watch: boolean;\n debug: boolean;\n all: boolean;\n unmodified: boolean;\n env?: string;\n scope?: string;\n junit?: string;\n coverage?: boolean;\n updateSnapshot: boolean;\n};\n\nexport class TestCmd implements Command {\n name = 'test [component-pattern]';\n description = 'test components in the workspace. by default only runs tests for new and modified components';\n helpUrl = 'reference/testing/tester-overview';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = 'at';\n group = 'development';\n options = [\n ['w', 'watch', 'start the tester in watch mode.'],\n ['d', 'debug', 'start the tester in debug mode.'],\n ['a', 'all', 'DEPRECATED. (use --unmodified)'],\n ['u', 'unmodified', 'test all components, not only new and modified'],\n ['', 'junit <filepath>', 'write tests results as JUnit XML format into the specified file path'],\n ['', 'coverage', 'show code coverage data'],\n ['e', 'env <id>', 'test only components assigned the given env'],\n ['', 'update-snapshot', 'if supported by the tester, re-record every snapshot that fails during the test run'],\n [\n 's',\n 'scope <scope-name>',\n 'DEPRECATED. (use the pattern instead, e.g. \"scopeName/**\"). name of the scope to test',\n ],\n // TODO: we need to reduce this redundant casting every time.\n ] as CommandOptions;\n\n constructor(\n private tester: TesterMain,\n private workspace: Workspace,\n private logger: Logger\n ) {}\n\n async report(\n [userPattern]: [string],\n {\n watch = false,\n debug = false,\n all = false,\n env,\n scope,\n junit,\n coverage = false,\n unmodified = false,\n updateSnapshot = false,\n }: TestFlags\n ) {\n const timer = Timer.create();\n const scopeName = typeof scope === 'string' ? scope : undefined;\n if (scopeName) {\n this.logger.consoleWarning(\n `--scope is deprecated, use the pattern argument instead. e.g. \"scopeName/**\" for the entire scope`\n );\n }\n if (all) {\n unmodified = all;\n this.logger.consoleWarning(`--all is deprecated, use --unmodified instead`);\n }\n timer.start();\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const getPatternWithScope = () => {\n if (!userPattern && !scope) return undefined;\n const pattern = userPattern || '**';\n return scopeName ? `${scopeName}/${pattern}` : pattern;\n };\n const patternWithScope = getPatternWithScope();\n const components = await this.workspace.getComponentsByUserInput(unmodified, patternWithScope, true);\n if (!components.length) {\n const data = chalk.bold(`no components found to test.\nuse \"--unmodified\" flag to test all components or specify the ids to test.\notherwise, only new and modified components will be tested`);\n return {\n code: 0,\n data,\n };\n }\n\n this.logger.console(\n `testing total of ${components.length} components in workspace '${chalk.cyan(this.workspace.name)}'`\n );\n\n let code = 0;\n if (watch && !debug) {\n // avoid turning off the logger for non-watch scenario. otherwise, when this aspect throws errors, they'll be\n // swallowed. (Jest errors are shown regardless via Jest, but if the tester is unable to run Jest in the first\n // place, these errors won't be shown)\n this.logger.off();\n await this.tester.watch(components, {\n watch,\n debug,\n env,\n coverage,\n updateSnapshot,\n });\n } else {\n const tests = await this.tester.test(components, {\n watch,\n debug,\n env,\n junit,\n coverage,\n updateSnapshot,\n });\n if (tests.hasErrors()) code = 1;\n if (process.exitCode && process.exitCode !== 0 && typeof process.exitCode === 'number') {\n // this is needed for testers such as \"vitest\", where it sets the exitCode to non zero when the coverage is not met.\n code = process.exitCode;\n }\n }\n const { seconds } = timer.stop();\n\n if (watch) return '';\n const data = `tests has been completed in ${chalk.cyan(seconds.toString())} seconds.`;\n return {\n code,\n data,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_workspace","_toolboxTime","_legacy","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","TestCmd","constructor","tester","workspace","logger","name","description","COMPONENT_PATTERN_HELP","report","userPattern","watch","debug","all","env","scope","junit","coverage","unmodified","updateSnapshot","timer","Timer","create","scopeName","undefined","consoleWarning","start","OutsideWorkspaceError","getPatternWithScope","pattern","patternWithScope","components","getComponentsByUserInput","chalk","bold","code","console","cyan","off","tests","test","hasErrors","process","exitCode","seconds","stop","toString","json","info","restore","silenceConsoleAndStdout","err","results","map","c","componentId","errors","error","exports","originalConsole","originalStdoutWrite","stdout","write","originalStderrWrite","stderr","method"],"sources":["test.cmd.ts"],"sourcesContent":["import { Command, CommandOptions, GenericObject } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { Timer } from '@teambit/toolbox.time.timer';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy.constants';\nimport type { TesterMain, TestResults } from './tester.main.runtime';\n\ntype TestFlags = {\n watch: boolean;\n debug: boolean;\n all: boolean;\n unmodified: boolean;\n env?: string;\n scope?: string;\n junit?: string;\n coverage?: boolean;\n updateSnapshot: boolean;\n};\n\nexport class TestCmd implements Command {\n name = 'test [component-pattern]';\n description = 'test components in the workspace. by default only runs tests for new and modified components';\n helpUrl = 'reference/testing/tester-overview';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = 'at';\n group = 'development';\n options = [\n ['w', 'watch', 'start the tester in watch mode.'],\n ['d', 'debug', 'start the tester in debug mode.'],\n ['a', 'all', 'DEPRECATED. (use --unmodified)'],\n ['u', 'unmodified', 'test all components, not only new and modified'],\n ['', 'junit <filepath>', 'write tests results as JUnit XML format into the specified file path'],\n ['', 'coverage', 'show code coverage data'],\n ['e', 'env <id>', 'test only components assigned the given env'],\n ['', 'update-snapshot', 'if supported by the tester, re-record every snapshot that fails during the test run'],\n [\n 's',\n 'scope <scope-name>',\n 'DEPRECATED. (use the pattern instead, e.g. \"scopeName/**\"). name of the scope to test',\n ],\n ['j', 'json', 'return the results in json format'],\n // TODO: we need to reduce this redundant casting every time.\n ] as CommandOptions;\n\n constructor(\n private tester: TesterMain,\n private workspace: Workspace,\n private logger: Logger\n ) {}\n\n async report(\n [userPattern]: [string],\n {\n watch = false,\n debug = false,\n all = false,\n env,\n scope,\n junit,\n coverage = false,\n unmodified = false,\n updateSnapshot = false,\n }: TestFlags\n ) {\n const timer = Timer.create();\n const scopeName = typeof scope === 'string' ? scope : undefined;\n if (scopeName) {\n this.logger.consoleWarning(\n `--scope is deprecated, use the pattern argument instead. e.g. \"scopeName/**\" for the entire scope`\n );\n }\n if (all) {\n unmodified = all;\n this.logger.consoleWarning(`--all is deprecated, use --unmodified instead`);\n }\n timer.start();\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const getPatternWithScope = () => {\n if (!userPattern && !scope) return undefined;\n const pattern = userPattern || '**';\n return scopeName ? `${scopeName}/${pattern}` : pattern;\n };\n const patternWithScope = getPatternWithScope();\n const components = await this.workspace.getComponentsByUserInput(unmodified, patternWithScope, true);\n if (!components.length) {\n const data = chalk.bold(`no components found to test.\nuse \"--unmodified\" flag to test all components or specify the ids to test.\notherwise, only new and modified components will be tested`);\n return {\n code: 0,\n data,\n };\n }\n\n this.logger.console(\n `testing total of ${components.length} components in workspace '${chalk.cyan(this.workspace.name)}'`\n );\n\n let code = 0;\n if (watch && !debug) {\n // avoid turning off the logger for non-watch scenario. otherwise, when this aspect throws errors, they'll be\n // swallowed. (Jest errors are shown regardless via Jest, but if the tester is unable to run Jest in the first\n // place, these errors won't be shown)\n this.logger.off();\n await this.tester.watch(components, {\n watch,\n debug,\n env,\n coverage,\n updateSnapshot,\n });\n } else {\n const tests = await this.tester.test(components, {\n watch,\n debug,\n env,\n junit,\n coverage,\n updateSnapshot,\n });\n if (tests.hasErrors()) code = 1;\n if (process.exitCode && process.exitCode !== 0 && typeof process.exitCode === 'number') {\n // this is needed for testers such as \"vitest\", where it sets the exitCode to non zero when the coverage is not met.\n code = process.exitCode;\n }\n }\n const { seconds } = timer.stop();\n\n if (watch) return '';\n const data = `tests has been completed in ${chalk.cyan(seconds.toString())} seconds.`;\n return {\n code,\n data,\n };\n }\n\n async json( [userPattern]: [string],\n {\n watch = false,\n debug = false,\n env,\n junit,\n coverage = false,\n unmodified = false,\n updateSnapshot = false,\n }: TestFlags): Promise<GenericObject> {\n const timer = Timer.create();\n timer.start();\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const getPatternWithScope = () => {\n if (!userPattern) return undefined;\n const pattern = userPattern || '**';\n return pattern;\n };\n const patternWithScope = getPatternWithScope();\n const components = await this.workspace.getComponentsByUserInput(unmodified, patternWithScope, true);\n if (!components.length) {\n this.logger.info(`no components found to test.\n use \"--unmodified\" flag to test all components or specify the ids to test.\n otherwise, only new and modified components will be tested`);\n return {\n code: 0,\n data: [],\n };\n }\n\n let code = 0;\n const restore = silenceConsoleAndStdout();\n let tests: TestResults;\n try {\n tests = await this.tester.test(components, {\n watch,\n debug,\n env,\n junit,\n coverage,\n updateSnapshot,\n });\n } catch (err) {\n restore();\n throw err;\n }\n restore();\n if (tests.hasErrors()) code = 1;\n if (process.exitCode && process.exitCode !== 0 && typeof process.exitCode === 'number') {\n // this is needed for testers such as \"vitest\", where it sets the exitCode to non zero when the coverage is not met.\n code = process.exitCode;\n }\n\n const data = tests.results.map(r => ({\n data: {\n components: r.data?.components.map(c => ({\n ...c,\n componentId: c.componentId.toString(),\n })),\n errors: r.data?.errors,\n },\n error: r.error,\n }));\n\n return {\n code,\n data\n };\n }\n}\n\n\n/**\n * Disables all console logging (via console.*) and direct writes to\n * process.stdout / process.stderr. Returns a function that, when called,\n * restores everything back to normal.\n */\nfunction silenceConsoleAndStdout(): () => void {\n // Keep copies of the original methods so we can restore them later\n const originalConsole = { ...console };\n const originalStdoutWrite = process.stdout.write;\n const originalStderrWrite = process.stderr.write;\n\n // No-op implementations for console.* methods\n for (const method of [\"log\", \"warn\", \"error\", \"info\", \"debug\"] as const) {\n // eslint-disable-next-line no-console\n console[method] = () => {};\n }\n\n // Replace process.stdout.write and process.stderr.write with no-ops\n process.stdout.write = (() => true) as any;\n process.stderr.write = (() => true) as any;\n\n // Return a function to restore original behavior\n return () => {\n for (const method of Object.keys(originalConsole) as (keyof Console)[]) {\n // @ts-ignore\n // eslint-disable-next-line no-console\n console[method] = originalConsole[method];\n }\n process.stdout.write = originalStdoutWrite;\n process.stderr.write = originalStderrWrite;\n };\n}"],"mappings":";;;;;;AACA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,aAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,YAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmE,SAAAC,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAe5D,MAAM8B,OAAO,CAAoB;EA8BtCC,WAAWA,CACDC,MAAkB,EAClBC,SAAoB,EACpBC,MAAc,EACtB;IAAA,KAHQF,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAApB,eAAA,eAhCjB,0BAA0B;IAAAA,eAAA,sBACnB,8FAA8F;IAAAA,eAAA,kBAClG,mCAAmC;IAAAA,eAAA,oBACjC,CACV;MACEqB,IAAI,EAAE,mBAAmB;MACzBC,WAAW,EAAEC;IACf,CAAC,CACF;IAAAvB,eAAA,gBACO,IAAI;IAAAA,eAAA,gBACJ,aAAa;IAAAA,eAAA,kBACX,CACR,CAAC,GAAG,EAAE,OAAO,EAAE,iCAAiC,CAAC,EACjD,CAAC,GAAG,EAAE,OAAO,EAAE,iCAAiC,CAAC,EACjD,CAAC,GAAG,EAAE,KAAK,EAAE,gCAAgC,CAAC,EAC9C,CAAC,GAAG,EAAE,YAAY,EAAE,gDAAgD,CAAC,EACrE,CAAC,EAAE,EAAE,kBAAkB,EAAE,sEAAsE,CAAC,EAChG,CAAC,EAAE,EAAE,UAAU,EAAE,yBAAyB,CAAC,EAC3C,CAAC,GAAG,EAAE,UAAU,EAAE,6CAA6C,CAAC,EAChE,CAAC,EAAE,EAAE,iBAAiB,EAAE,qFAAqF,CAAC,EAC9G,CACE,GAAG,EACH,oBAAoB,EACpB,uFAAuF,CACxF,EACD,CAAC,GAAG,EAAE,MAAM,EAAE,mCAAmC;IACjD;IAAA,CACD;EAME;EAEH,MAAMwB,MAAMA,CACV,CAACC,WAAW,CAAW,EACvB;IACEC,KAAK,GAAG,KAAK;IACbC,KAAK,GAAG,KAAK;IACbC,GAAG,GAAG,KAAK;IACXC,GAAG;IACHC,KAAK;IACLC,KAAK;IACLC,QAAQ,GAAG,KAAK;IAChBC,UAAU,GAAG,KAAK;IAClBC,cAAc,GAAG;EACR,CAAC,EACZ;IACA,MAAMC,KAAK,GAAGC,oBAAK,CAACC,MAAM,CAAC,CAAC;IAC5B,MAAMC,SAAS,GAAG,OAAOR,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGS,SAAS;IAC/D,IAAID,SAAS,EAAE;MACb,IAAI,CAAClB,MAAM,CAACoB,cAAc,CACxB,mGACF,CAAC;IACH;IACA,IAAIZ,GAAG,EAAE;MACPK,UAAU,GAAGL,GAAG;MAChB,IAAI,CAACR,MAAM,CAACoB,cAAc,CAAC,+CAA+C,CAAC;IAC7E;IACAL,KAAK,CAACM,KAAK,CAAC,CAAC;IACb,IAAI,CAAC,IAAI,CAACtB,SAAS,EAAE,MAAM,KAAIuB,kCAAqB,EAAC,CAAC;IAEtD,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;MAChC,IAAI,CAAClB,WAAW,IAAI,CAACK,KAAK,EAAE,OAAOS,SAAS;MAC5C,MAAMK,OAAO,GAAGnB,WAAW,IAAI,IAAI;MACnC,OAAOa,SAAS,GAAG,GAAGA,SAAS,IAAIM,OAAO,EAAE,GAAGA,OAAO;IACxD,CAAC;IACD,MAAMC,gBAAgB,GAAGF,mBAAmB,CAAC,CAAC;IAC9C,MAAMG,UAAU,GAAG,MAAM,IAAI,CAAC3B,SAAS,CAAC4B,wBAAwB,CAACd,UAAU,EAAEY,gBAAgB,EAAE,IAAI,CAAC;IACpG,IAAI,CAACC,UAAU,CAAChD,MAAM,EAAE;MACtB,MAAMvB,IAAI,GAAGyE,gBAAK,CAACC,IAAI,CAAC;AAC9B;AACA,2DAA2D,CAAC;MACtD,OAAO;QACLC,IAAI,EAAE,CAAC;QACP3E;MACF,CAAC;IACH;IAEA,IAAI,CAAC6C,MAAM,CAAC+B,OAAO,CACjB,oBAAoBL,UAAU,CAAChD,MAAM,6BAA6BkD,gBAAK,CAACI,IAAI,CAAC,IAAI,CAACjC,SAAS,CAACE,IAAI,CAAC,GACnG,CAAC;IAED,IAAI6B,IAAI,GAAG,CAAC;IACZ,IAAIxB,KAAK,IAAI,CAACC,KAAK,EAAE;MACnB;MACA;MACA;MACA,IAAI,CAACP,MAAM,CAACiC,GAAG,CAAC,CAAC;MACjB,MAAM,IAAI,CAACnC,MAAM,CAACQ,KAAK,CAACoB,UAAU,EAAE;QAClCpB,KAAK;QACLC,KAAK;QACLE,GAAG;QACHG,QAAQ;QACRE;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,MAAMoB,KAAK,GAAG,MAAM,IAAI,CAACpC,MAAM,CAACqC,IAAI,CAACT,UAAU,EAAE;QAC/CpB,KAAK;QACLC,KAAK;QACLE,GAAG;QACHE,KAAK;QACLC,QAAQ;QACRE;MACF,CAAC,CAAC;MACF,IAAIoB,KAAK,CAACE,SAAS,CAAC,CAAC,EAAEN,IAAI,GAAG,CAAC;MAC/B,IAAIO,OAAO,CAACC,QAAQ,IAAID,OAAO,CAACC,QAAQ,KAAK,CAAC,IAAI,OAAOD,OAAO,CAACC,QAAQ,KAAK,QAAQ,EAAE;QACtF;QACAR,IAAI,GAAGO,OAAO,CAACC,QAAQ;MACzB;IACF;IACA,MAAM;MAAEC;IAAQ,CAAC,GAAGxB,KAAK,CAACyB,IAAI,CAAC,CAAC;IAEhC,IAAIlC,KAAK,EAAE,OAAO,EAAE;IACpB,MAAMnD,IAAI,GAAG,+BAA+ByE,gBAAK,CAACI,IAAI,CAACO,OAAO,CAACE,QAAQ,CAAC,CAAC,CAAC,WAAW;IACrF,OAAO;MACLX,IAAI;MACJ3E;IACF,CAAC;EACH;EAEA,MAAMuF,IAAIA,CAAE,CAACrC,WAAW,CAAW,EACjC;IACEC,KAAK,GAAG,KAAK;IACbC,KAAK,GAAG,KAAK;IACbE,GAAG;IACHE,KAAK;IACLC,QAAQ,GAAG,KAAK;IAChBC,UAAU,GAAG,KAAK;IAClBC,cAAc,GAAG;EACR,CAAC,EAA0B;IACpC,MAAMC,KAAK,GAAGC,oBAAK,CAACC,MAAM,CAAC,CAAC;IAC5BF,KAAK,CAACM,KAAK,CAAC,CAAC;IACb,IAAI,CAAC,IAAI,CAACtB,SAAS,EAAE,MAAM,KAAIuB,kCAAqB,EAAC,CAAC;IAEtD,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;MAChC,IAAI,CAAClB,WAAW,EAAE,OAAOc,SAAS;MAClC,MAAMK,OAAO,GAAGnB,WAAW,IAAI,IAAI;MACnC,OAAOmB,OAAO;IAChB,CAAC;IACD,MAAMC,gBAAgB,GAAGF,mBAAmB,CAAC,CAAC;IAC9C,MAAMG,UAAU,GAAG,MAAM,IAAI,CAAC3B,SAAS,CAAC4B,wBAAwB,CAACd,UAAU,EAAEY,gBAAgB,EAAE,IAAI,CAAC;IACpG,IAAI,CAACC,UAAU,CAAChD,MAAM,EAAE;MACtB,IAAI,CAACsB,MAAM,CAAC2C,IAAI,CAAC;AACzB;AACA,6DAA6D,CAAC;MACtD,OAAO;QACLb,IAAI,EAAE,CAAC;QACP3E,IAAI,EAAE;MACR,CAAC;IACH;IAEA,IAAI2E,IAAI,GAAG,CAAC;IACZ,MAAMc,OAAO,GAAGC,uBAAuB,CAAC,CAAC;IACzC,IAAIX,KAAkB;IACtB,IAAI;MACFA,KAAK,GAAG,MAAM,IAAI,CAACpC,MAAM,CAACqC,IAAI,CAACT,UAAU,EAAE;QACzCpB,KAAK;QACLC,KAAK;QACLE,GAAG;QACHE,KAAK;QACLC,QAAQ;QACRE;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOgC,GAAG,EAAE;MACZF,OAAO,CAAC,CAAC;MACT,MAAME,GAAG;IACX;IACAF,OAAO,CAAC,CAAC;IACT,IAAIV,KAAK,CAACE,SAAS,CAAC,CAAC,EAAEN,IAAI,GAAG,CAAC;IAC/B,IAAIO,OAAO,CAACC,QAAQ,IAAID,OAAO,CAACC,QAAQ,KAAK,CAAC,IAAI,OAAOD,OAAO,CAACC,QAAQ,KAAK,QAAQ,EAAE;MACtF;MACAR,IAAI,GAAGO,OAAO,CAACC,QAAQ;IACzB;IAEA,MAAMnF,IAAI,GAAG+E,KAAK,CAACa,OAAO,CAACC,GAAG,CAACnF,CAAC,KAAK;MACnCV,IAAI,EAAE;QACJuE,UAAU,EAAE7D,CAAC,CAACV,IAAI,EAAEuE,UAAU,CAACsB,GAAG,CAACC,CAAC,IAAAzE,aAAA,CAAAA,aAAA,KAC/ByE,CAAC;UACJC,WAAW,EAAED,CAAC,CAACC,WAAW,CAACT,QAAQ,CAAC;QAAC,EACrC,CAAC;QACHU,MAAM,EAAEtF,CAAC,CAACV,IAAI,EAAEgG;MAClB,CAAC;MACDC,KAAK,EAAEvF,CAAC,CAACuF;IACX,CAAC,CAAC,CAAC;IAEH,OAAO;MACLtB,IAAI;MACJ3E;IACF,CAAC;EACL;AACF;;AAGA;AACA;AACA;AACA;AACA;AAJAkG,OAAA,CAAAzD,OAAA,GAAAA,OAAA;AAKA,SAASiD,uBAAuBA,CAAA,EAAe;EAC7C;EACA,MAAMS,eAAe,GAAA9E,aAAA,KAAQuD,OAAO,CAAE;EACtC,MAAMwB,mBAAmB,GAAGlB,OAAO,CAACmB,MAAM,CAACC,KAAK;EAChD,MAAMC,mBAAmB,GAAGrB,OAAO,CAACsB,MAAM,CAACF,KAAK;;EAEhD;EACA,KAAK,MAAMG,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAW;IACvE;IACA7B,OAAO,CAAC6B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;EAC5B;;EAEA;EACAvB,OAAO,CAACmB,MAAM,CAACC,KAAK,GAAI,MAAM,IAAY;EAC1CpB,OAAO,CAACsB,MAAM,CAACF,KAAK,GAAI,MAAM,IAAY;;EAE1C;EACA,OAAO,MAAM;IACX,KAAK,MAAMG,MAAM,IAAI7F,MAAM,CAACC,IAAI,CAACsF,eAAe,CAAC,EAAuB;MACtE;MACA;MACAvB,OAAO,CAAC6B,MAAM,CAAC,GAAGN,eAAe,CAACM,MAAM,CAAC;IAC3C;IACAvB,OAAO,CAACmB,MAAM,CAACC,KAAK,GAAGF,mBAAmB;IAC1ClB,OAAO,CAACsB,MAAM,CAACF,KAAK,GAAGC,mBAAmB;EAC5C,CAAC;AACH","ignoreList":[]}
@@ -22,6 +22,7 @@ export type TesterExtensionConfig = {
22
22
  watchOnStart: boolean;
23
23
  patterns: string[];
24
24
  };
25
+ export type TestResults = EnvsExecutionResult<Tests>;
25
26
  export type TesterOptions = {
26
27
  /**
27
28
  * start the tester in watch mode.
@@ -103,7 +104,7 @@ export declare class TesterMain {
103
104
  _testsResults: {
104
105
  [componentId: string]: ComponentsResults;
105
106
  } | undefined[];
106
- test(components: Component[], opts?: TesterOptions): Promise<EnvsExecutionResult<Tests>>;
107
+ test(components: Component[], opts?: TesterOptions): Promise<TestResults>;
107
108
  private generateJUnit;
108
109
  /**
109
110
  * watch all components for changes and test upon each.
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_cli","_lodash","_envs","_logger","_workspace","_graphql","_builder","_ui","_lodash2","_devFiles","_test","_tester","_tester2","_tester3","_utils","_tester4","_junitGenerator","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","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","skipWarnings","inInstallContext","componentPatterns","getTestsDevPatterns","name","pattern","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","exports","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 /**\n * update snapshot if supported by the tester\n */\n updateSnapshot?: 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, { skipWarnings: !!this.workspace?.inInstallContext }).env;\n const componentPatterns: string[] = env.getTestsDevPatterns\n ? env.getTestsDevPatterns(component)\n : this.getPatterns();\n return { name: 'tests', pattern: 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: false,\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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","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_cli","_lodash","_envs","_logger","_workspace","_graphql","_builder","_ui","_lodash2","_devFiles","_test","_tester","_tester2","_tester3","_utils","_tester4","_junitGenerator","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","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","skipWarnings","inInstallContext","componentPatterns","getTestsDevPatterns","name","pattern","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","exports","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 TestResults = EnvsExecutionResult<Tests>;\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 /**\n * update snapshot if supported by the tester\n */\n updateSnapshot?: 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<TestResults> {\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: TestResults) {\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, { skipWarnings: !!this.workspace?.inInstallContext }).env;\n const componentPatterns: string[] = env.getTestsDevPatterns\n ? env.getTestsDevPatterns(component)\n : this.getPatterns();\n return { name: 'tests', pattern: 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: false,\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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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/tester",
3
- "version": "1.0.565",
3
+ "version": "1.0.567",
4
4
  "homepage": "https://bit.cloud/teambit/defender/tester",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.defender",
8
8
  "name": "tester",
9
- "version": "1.0.565"
9
+ "version": "1.0.567"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -23,20 +23,20 @@
23
23
  "@teambit/tests-results": "1.0.5",
24
24
  "@teambit/defender.ui.test-compare-section": "0.0.101",
25
25
  "@teambit/bit-error": "0.0.404",
26
- "@teambit/cli": "0.0.1142",
26
+ "@teambit/cli": "0.0.1144",
27
27
  "@teambit/legacy.constants": "0.0.11",
28
- "@teambit/logger": "0.0.1235",
28
+ "@teambit/logger": "0.0.1237",
29
29
  "@teambit/toolbox.time.timer": "0.0.5",
30
- "@teambit/workspace": "1.0.565",
31
- "@teambit/envs": "1.0.565",
32
- "@teambit/component": "1.0.565",
33
- "@teambit/graphql": "1.0.565",
34
- "@teambit/builder": "1.0.565",
35
- "@teambit/dev-files": "1.0.565",
36
- "@teambit/ui": "1.0.565",
37
- "@teambit/compiler": "1.0.565",
30
+ "@teambit/workspace": "1.0.567",
31
+ "@teambit/envs": "1.0.567",
32
+ "@teambit/component": "1.0.567",
33
+ "@teambit/graphql": "1.0.567",
34
+ "@teambit/builder": "1.0.567",
35
+ "@teambit/dev-files": "1.0.567",
36
+ "@teambit/ui": "1.0.567",
37
+ "@teambit/compiler": "1.0.567",
38
38
  "@teambit/component.sources": "0.0.95",
39
- "@teambit/component-compare": "1.0.565",
39
+ "@teambit/component-compare": "1.0.567",
40
40
  "@teambit/defender.ui.test-compare": "0.0.279",
41
41
  "@teambit/defender.ui.test-page": "0.0.57"
42
42
  },