@teambit/tester 1.0.107 → 1.0.108

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/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@1.0.107/dist/tester.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@1.0.107/dist/tester.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@1.0.108/dist/tester.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@1.0.108/dist/tester.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,9 +1,9 @@
1
+ /// <reference types="react" />
1
2
  import { Command, CommandOptions } from '@teambit/cli';
2
3
  import { Logger } from '@teambit/logger';
3
4
  import { Workspace } from '@teambit/workspace';
4
- import React from 'react';
5
5
  import type { TesterMain } from './tester.main.runtime';
6
- declare type TestFlags = {
6
+ type TestFlags = {
7
7
  watch: boolean;
8
8
  debug: boolean;
9
9
  all: boolean;
@@ -28,9 +28,9 @@ export declare class TestCmd implements Command {
28
28
  group: string;
29
29
  options: CommandOptions;
30
30
  constructor(tester: TesterMain, workspace: Workspace, logger: Logger);
31
- render([userPattern]: [string], { watch, debug, all, env, scope, junit, coverage, unmodified }: TestFlags): Promise<React.JSX.Element | {
31
+ render([userPattern]: [string], { watch, debug, all, env, scope, junit, coverage, unmodified }: TestFlags): Promise<JSX.Element | {
32
32
  code: number;
33
- data: React.JSX.Element;
33
+ data: JSX.Element;
34
34
  }>;
35
35
  }
36
36
  export {};
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const Logo: () => React.JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare const Logo: () => JSX.Element;
package/dist/tester.d.ts CHANGED
@@ -7,7 +7,7 @@ export declare class Tests {
7
7
  constructor(components: ComponentsResults[]);
8
8
  get errors(): Error[];
9
9
  }
10
- export declare type ComponentsResults = {
10
+ export type ComponentsResults = {
11
11
  /**
12
12
  * component id.
13
13
  */
@@ -25,8 +25,8 @@ export declare type ComponentsResults = {
25
25
  */
26
26
  loading?: boolean;
27
27
  };
28
- export declare type SpecFiles = ComponentMap<AbstractVinyl[]>;
29
- export declare type ComponentPatternsEntry = {
28
+ export type SpecFiles = ComponentMap<AbstractVinyl[]>;
29
+ export type ComponentPatternsEntry = {
30
30
  /**
31
31
  * component directory in the workspace.
32
32
  */
@@ -43,7 +43,7 @@ export declare type ComponentPatternsEntry = {
43
43
  */
44
44
  packageRootDir: string;
45
45
  };
46
- export declare type ComponentPatternsMap = ComponentMap<ComponentPatternsEntry>;
46
+ export type ComponentPatternsMap = ComponentMap<ComponentPatternsEntry>;
47
47
  export interface TesterContext extends ExecutionContext {
48
48
  /**
49
49
  * whether the tester run for release (during bit build/tag) or not (during bit test command).
@@ -140,4 +140,4 @@ export interface Tester {
140
140
  */
141
141
  version(): string;
142
142
  }
143
- export declare type CallbackFn = (testSuite: Tests) => void;
143
+ export type CallbackFn = (testSuite: Tests) => void;
@@ -11,7 +11,7 @@ import { TestsResult } from '@teambit/tests-results';
11
11
  import { ComponentsResults, CallbackFn, Tests } from './tester';
12
12
  import { TesterService } from './tester.service';
13
13
  import { TesterTask } from './tester.task';
14
- export declare type TesterExtensionConfig = {
14
+ export type TesterExtensionConfig = {
15
15
  /**
16
16
  * regex of the text environment.
17
17
  */
@@ -22,7 +22,7 @@ export declare type TesterExtensionConfig = {
22
22
  watchOnStart: boolean;
23
23
  patterns: string[];
24
24
  };
25
- export declare type TesterOptions = {
25
+ export type TesterOptions = {
26
26
  /**
27
27
  * start the tester in watch mode.
28
28
  */
@@ -120,10 +120,7 @@ export declare class TesterMain {
120
120
  name: string;
121
121
  pattern: string[];
122
122
  };
123
- getDevPatternToRegister(): (component: Component) => {
124
- name: string;
125
- pattern: string[];
126
- };
123
+ getDevPatternToRegister(): any;
127
124
  /**
128
125
  * get all test files of a component.
129
126
  */
@@ -169,20 +169,17 @@ class TesterMain {
169
169
  async test(components, opts) {
170
170
  const options = this.getOptions(opts);
171
171
  const envsRuntime = await this.envs.createEnvironment(components);
172
- if (opts !== null && opts !== void 0 && opts.env) {
172
+ if (opts?.env) {
173
173
  return envsRuntime.runEnv(opts.env, this.service, options);
174
174
  }
175
175
  const results = await envsRuntime.run(this.service, options);
176
- if (opts !== null && opts !== void 0 && opts.junit) {
177
- await this.generateJUnit(opts === null || opts === void 0 ? void 0 : opts.junit, results);
176
+ if (opts?.junit) {
177
+ await this.generateJUnit(opts?.junit, results);
178
178
  }
179
179
  return results;
180
180
  }
181
181
  async generateJUnit(filePath, testsResults) {
182
- const components = testsResults.results.map(envResult => {
183
- var _envResult$data;
184
- return (_envResult$data = envResult.data) === null || _envResult$data === void 0 ? void 0 : _envResult$data.components;
185
- }).flat();
182
+ const components = testsResults.results.map(envResult => envResult.data?.components).flat();
186
183
  const jUnit = (0, _junitGenerator().testsResultsToJUnitFormat)((0, _lodash().default)(components));
187
184
  await _fsExtra().default.outputFile(filePath, jUnit);
188
185
  }
@@ -193,7 +190,7 @@ class TesterMain {
193
190
  async watch(components, opts) {
194
191
  const options = this.getOptions(opts);
195
192
  const envsRuntime = await this.envs.createEnvironment(components);
196
- if (opts !== null && opts !== void 0 && opts.env) {
193
+ if (opts?.env) {
197
194
  return envsRuntime.runEnv(opts.env, this.service, options);
198
195
  }
199
196
  this.service.onTestRunComplete(results => {
@@ -217,7 +214,7 @@ class TesterMain {
217
214
  const data = this.builder.getDataByAspect(component, _tester().TesterAspect.id);
218
215
  if ((entry || data) && !isModified) {
219
216
  return {
220
- testsResults: (data === null || data === void 0 ? void 0 : data.tests) || (entry === null || entry === void 0 ? void 0 : entry.data.tests),
217
+ testsResults: data?.tests || entry?.data.tests,
221
218
  loading: false
222
219
  };
223
220
  }
@@ -226,8 +223,8 @@ class TesterMain {
226
223
  getTestsResultsFromState(component) {
227
224
  const tests = this._testsResults[component.id.toString()];
228
225
  return {
229
- testsResults: tests === null || tests === void 0 ? void 0 : tests.results,
230
- loading: (tests === null || tests === void 0 ? void 0 : tests.loading) || false
226
+ testsResults: tests?.results,
227
+ loading: tests?.loading || false
231
228
  };
232
229
  }
233
230
 
@@ -239,9 +236,8 @@ class TesterMain {
239
236
  return this.patterns;
240
237
  }
241
238
  getComponentDevPatterns(component) {
242
- var _this$workspace;
243
239
  const env = this.envs.calculateEnv(component, {
244
- skipWarnings: !!((_this$workspace = this.workspace) !== null && _this$workspace !== void 0 && _this$workspace.inInstallContext)
240
+ skipWarnings: !!this.workspace?.inInstallContext
245
241
  }).env;
246
242
  const componentPatterns = env.getTestsDevPatterns ? env.getTestsDevPatterns(component) : this.getPatterns();
247
243
  return {
@@ -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","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","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","_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","_this$workspace","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 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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"}
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","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","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 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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"}
@@ -1,5 +1,5 @@
1
+ /// <reference types="react" />
1
2
  import { Logger } from '@teambit/logger';
2
- import React from 'react';
3
3
  import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
4
4
  import { Workspace } from '@teambit/workspace';
5
5
  import { PubSubEngine } from 'graphql-subscriptions';
@@ -7,10 +7,10 @@ import { DevFilesMain } from '@teambit/dev-files';
7
7
  import { Tester, Tests, CallbackFn } from './tester';
8
8
  import { TesterOptions } from './tester.main.runtime';
9
9
  export declare const OnTestsChanged = "OnTestsChanged";
10
- declare type TesterTransformationMap = ServiceTransformationMap & {
10
+ type TesterTransformationMap = ServiceTransformationMap & {
11
11
  getTester: () => Tester;
12
12
  };
13
- export declare type TesterDescriptor = {
13
+ export type TesterDescriptor = {
14
14
  /**
15
15
  * id of the tester (e.g. jest/mocha)
16
16
  */
@@ -37,14 +37,14 @@ export declare class TesterService implements EnvService<Tests, TesterDescriptor
37
37
  name: string;
38
38
  constructor(workspace: Workspace, logger: Logger, pubsub: PubSubEngine, devFiles: DevFilesMain);
39
39
  _callback: CallbackFn | undefined;
40
- render(env: EnvDefinition): React.JSX.Element;
40
+ render(env: EnvDefinition): JSX.Element;
41
41
  getDescriptor(environment: EnvDefinition): {
42
42
  id: string;
43
43
  displayName: string;
44
44
  icon: string;
45
45
  config: string;
46
46
  version: string;
47
- } | undefined;
47
+ };
48
48
  transform(env: Env, context: EnvContext): TesterTransformationMap | undefined;
49
49
  onTestRunComplete(callback: CallbackFn): void;
50
50
  run(context: ExecutionContext, options: TesterOptions): Promise<Tests>;
@@ -78,13 +78,13 @@ class TesterService {
78
78
  render(env) {
79
79
  const descriptor = this.getDescriptor(env);
80
80
  return /*#__PURE__*/_react().default.createElement(_ink().Text, {
81
- key: descriptor === null || descriptor === void 0 ? void 0 : descriptor.id
81
+ key: descriptor?.id
82
82
  }, /*#__PURE__*/_react().default.createElement(_ink().Text, {
83
83
  color: "cyan"
84
- }, "configured tester: "), /*#__PURE__*/_react().default.createElement(_ink().Text, null, descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, " (", descriptor === null || descriptor === void 0 ? void 0 : descriptor.displayName, " @ ", descriptor === null || descriptor === void 0 ? void 0 : descriptor.version, ")"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, {
84
+ }, "configured tester: "), /*#__PURE__*/_react().default.createElement(_ink().Text, null, descriptor?.id, " (", descriptor?.displayName, " @ ", descriptor?.version, ")"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, {
85
85
  underline: true,
86
86
  color: "cyan"
87
- }, "tester config:"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, null, (0, _cliHighlight().default)((descriptor === null || descriptor === void 0 ? void 0 : descriptor.config) || '', {
87
+ }, "tester config:"), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, null, (0, _cliHighlight().default)(descriptor?.config || '', {
88
88
  language: 'javascript',
89
89
  ignoreIllegals: true
90
90
  })), /*#__PURE__*/_react().default.createElement(_ink().Newline, null));
@@ -102,7 +102,7 @@ class TesterService {
102
102
  }
103
103
  transform(env, context) {
104
104
  // Old env
105
- if (!(env !== null && env !== void 0 && env.tester)) return undefined;
105
+ if (!env?.tester) return undefined;
106
106
  return {
107
107
  getTester: () => env.tester()(context)
108
108
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","require","_react","_interopRequireDefault","_ink","_component","_cliHighlight","_tester","_tester2","_utils","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","chalk","OnTestsChanged","exports","TesterService","constructor","workspace","logger","pubsub","devFiles","render","env","descriptor","getDescriptor","createElement","Text","id","color","displayName","version","Newline","underline","highlight","config","language","ignoreIllegals","environment","getTester","undefined","tester","icon","displayConfig","transform","context","onTestRunComplete","callback","_callback","run","options","specFiles","ComponentMap","as","components","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","componentWithTests","ui","consoleWarning","cyan","Tests","console","patterns","asAsync","componentDir","componentPatterns","getDevPatterns","TesterAspect","packageRootDir","getComponentPackagePath","paths","map","pattern","path","resolve","relative","additionalHostDependencies","getAdditionalTestHostDependencies","testerContext","assign","release","rootPath","debug","watch","coverage","results","forEach","publish","testsChanged","componentId","toString","testsResults","loading","test"],"sources":["tester.service.tsx"],"sourcesContent":["import { Logger } from '@teambit/logger';\nimport { resolve } from 'path';\nimport React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Workspace } from '@teambit/workspace';\nimport highlight from 'cli-highlight';\nimport { PubSubEngine } from 'graphql-subscriptions';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { Tester, Tests, CallbackFn } from './tester';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterOptions } from './tester.main.runtime';\nimport { detectTestFiles } from './utils';\n\nconst chalk = require('chalk');\n\nexport const OnTestsChanged = 'OnTestsChanged';\n\ntype TesterTransformationMap = ServiceTransformationMap & {\n getTester: () => Tester;\n};\n\nexport type TesterDescriptor = {\n /**\n * id of the tester (e.g. jest/mocha)\n */\n id: string;\n\n /**\n * display name of the tester (e.g. Jest / Mocha)\n */\n displayName: string;\n\n /**\n * icon of the configured tester.\n */\n icon: string;\n\n /**\n * string containing the config for display.\n */\n config: string;\n\n version?: string;\n};\n\nexport class TesterService implements EnvService<Tests, TesterDescriptor> {\n name = 'tester';\n\n constructor(\n readonly workspace: Workspace,\n\n private logger: Logger,\n\n private pubsub: PubSubEngine,\n\n private devFiles: DevFilesMain\n ) {}\n\n _callback: CallbackFn | undefined;\n\n render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured tester: </Text>\n <Text>\n {descriptor?.id} ({descriptor?.displayName} @ {descriptor?.version})\n </Text>\n <Newline />\n <Text underline color=\"cyan\">\n tester config:\n </Text>\n <Newline />\n <Text>\n {/* refactor a separate component which highlights for cli */}\n {highlight(descriptor?.config || '', { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(environment: EnvDefinition) {\n if (!environment.env.getTester) return undefined;\n const tester: Tester = environment.env.getTester();\n\n return {\n id: tester.id || '',\n displayName: tester.displayName || '',\n icon: tester.icon || '',\n config: tester.displayConfig ? tester.displayConfig() : '',\n version: tester.version ? tester.version() : '?',\n };\n }\n\n transform(env: Env, context: EnvContext): TesterTransformationMap | undefined {\n // Old env\n if (!env?.tester) return undefined;\n\n return {\n getTester: () => env.tester()(context),\n };\n }\n\n onTestRunComplete(callback: CallbackFn) {\n this._callback = callback;\n }\n\n async run(context: ExecutionContext, options: TesterOptions): Promise<Tests> {\n const tester: Tester = context.env.getTester();\n const specFiles = ComponentMap.as(context.components, (component) => {\n return detectTestFiles(component, this.devFiles);\n });\n const testCount = specFiles.toArray().reduce((acc, [, specs]) => acc + specs.length, 0);\n\n const componentWithTests = specFiles.toArray().reduce((acc: number, [, specs]) => {\n if (specs.length > 0) acc += 1;\n return acc;\n }, 0);\n\n if (testCount === 0 && !options.ui) {\n this.logger.consoleWarning(`no tests found for components using environment ${chalk.cyan(context.id)}\\n`);\n return new Tests([]);\n }\n\n if (!options.ui)\n this.logger.console(`testing ${componentWithTests} components with environment ${chalk.cyan(context.id)}\\n`);\n\n const patterns = await ComponentMap.asAsync(context.components, async (component) => {\n const componentDir = this.workspace.componentDir(component.id);\n const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);\n const packageRootDir = await this.workspace.getComponentPackagePath(component);\n\n return {\n componentDir,\n packageRootDir,\n paths:\n componentPatterns.map((pattern: string) => ({\n path: resolve(componentDir, pattern),\n relative: pattern,\n })) || [],\n };\n });\n\n let additionalHostDependencies = [];\n if (\n context.env.getAdditionalTestHostDependencies &&\n typeof context.env.getAdditionalTestHostDependencies === 'function'\n ) {\n additionalHostDependencies = await context.env.getAdditionalTestHostDependencies();\n }\n\n const testerContext = Object.assign(context, {\n release: false,\n specFiles,\n patterns,\n rootPath: this.workspace.path,\n workspace: this.workspace,\n debug: options.debug,\n watch: options.watch,\n ui: options.ui,\n coverage: options.coverage,\n additionalHostDependencies,\n });\n\n if (options.watch && options.ui && tester.watch) {\n if (tester.onTestRunComplete) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tester.onTestRunComplete((results) => {\n if (this._callback) this._callback(results);\n results.components.forEach((component) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.pubsub.publish(OnTestsChanged, {\n testsChanged: {\n id: component.componentId.toString(),\n testsResults: component.results,\n loading: component.loading,\n },\n });\n });\n });\n }\n\n return tester.watch(testerContext);\n }\n\n const results = await tester.test(testerContext);\n\n return results;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_path","data","require","_react","_interopRequireDefault","_ink","_component","_cliHighlight","_tester","_tester2","_utils","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","chalk","OnTestsChanged","exports","TesterService","constructor","workspace","logger","pubsub","devFiles","render","env","descriptor","getDescriptor","createElement","Text","id","color","displayName","version","Newline","underline","highlight","config","language","ignoreIllegals","environment","getTester","undefined","tester","icon","displayConfig","transform","context","onTestRunComplete","callback","_callback","run","options","specFiles","ComponentMap","as","components","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","componentWithTests","ui","consoleWarning","cyan","Tests","console","patterns","asAsync","componentDir","componentPatterns","getDevPatterns","TesterAspect","packageRootDir","getComponentPackagePath","paths","map","pattern","path","resolve","relative","additionalHostDependencies","getAdditionalTestHostDependencies","testerContext","assign","release","rootPath","debug","watch","coverage","results","forEach","publish","testsChanged","componentId","toString","testsResults","loading","test"],"sources":["tester.service.tsx"],"sourcesContent":["import { Logger } from '@teambit/logger';\nimport { resolve } from 'path';\nimport React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Workspace } from '@teambit/workspace';\nimport highlight from 'cli-highlight';\nimport { PubSubEngine } from 'graphql-subscriptions';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { Tester, Tests, CallbackFn } from './tester';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterOptions } from './tester.main.runtime';\nimport { detectTestFiles } from './utils';\n\nconst chalk = require('chalk');\n\nexport const OnTestsChanged = 'OnTestsChanged';\n\ntype TesterTransformationMap = ServiceTransformationMap & {\n getTester: () => Tester;\n};\n\nexport type TesterDescriptor = {\n /**\n * id of the tester (e.g. jest/mocha)\n */\n id: string;\n\n /**\n * display name of the tester (e.g. Jest / Mocha)\n */\n displayName: string;\n\n /**\n * icon of the configured tester.\n */\n icon: string;\n\n /**\n * string containing the config for display.\n */\n config: string;\n\n version?: string;\n};\n\nexport class TesterService implements EnvService<Tests, TesterDescriptor> {\n name = 'tester';\n\n constructor(\n readonly workspace: Workspace,\n\n private logger: Logger,\n\n private pubsub: PubSubEngine,\n\n private devFiles: DevFilesMain\n ) {}\n\n _callback: CallbackFn | undefined;\n\n render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured tester: </Text>\n <Text>\n {descriptor?.id} ({descriptor?.displayName} @ {descriptor?.version})\n </Text>\n <Newline />\n <Text underline color=\"cyan\">\n tester config:\n </Text>\n <Newline />\n <Text>\n {/* refactor a separate component which highlights for cli */}\n {highlight(descriptor?.config || '', { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(environment: EnvDefinition) {\n if (!environment.env.getTester) return undefined;\n const tester: Tester = environment.env.getTester();\n\n return {\n id: tester.id || '',\n displayName: tester.displayName || '',\n icon: tester.icon || '',\n config: tester.displayConfig ? tester.displayConfig() : '',\n version: tester.version ? tester.version() : '?',\n };\n }\n\n transform(env: Env, context: EnvContext): TesterTransformationMap | undefined {\n // Old env\n if (!env?.tester) return undefined;\n\n return {\n getTester: () => env.tester()(context),\n };\n }\n\n onTestRunComplete(callback: CallbackFn) {\n this._callback = callback;\n }\n\n async run(context: ExecutionContext, options: TesterOptions): Promise<Tests> {\n const tester: Tester = context.env.getTester();\n const specFiles = ComponentMap.as(context.components, (component) => {\n return detectTestFiles(component, this.devFiles);\n });\n const testCount = specFiles.toArray().reduce((acc, [, specs]) => acc + specs.length, 0);\n\n const componentWithTests = specFiles.toArray().reduce((acc: number, [, specs]) => {\n if (specs.length > 0) acc += 1;\n return acc;\n }, 0);\n\n if (testCount === 0 && !options.ui) {\n this.logger.consoleWarning(`no tests found for components using environment ${chalk.cyan(context.id)}\\n`);\n return new Tests([]);\n }\n\n if (!options.ui)\n this.logger.console(`testing ${componentWithTests} components with environment ${chalk.cyan(context.id)}\\n`);\n\n const patterns = await ComponentMap.asAsync(context.components, async (component) => {\n const componentDir = this.workspace.componentDir(component.id);\n const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);\n const packageRootDir = await this.workspace.getComponentPackagePath(component);\n\n return {\n componentDir,\n packageRootDir,\n paths:\n componentPatterns.map((pattern: string) => ({\n path: resolve(componentDir, pattern),\n relative: pattern,\n })) || [],\n };\n });\n\n let additionalHostDependencies = [];\n if (\n context.env.getAdditionalTestHostDependencies &&\n typeof context.env.getAdditionalTestHostDependencies === 'function'\n ) {\n additionalHostDependencies = await context.env.getAdditionalTestHostDependencies();\n }\n\n const testerContext = Object.assign(context, {\n release: false,\n specFiles,\n patterns,\n rootPath: this.workspace.path,\n workspace: this.workspace,\n debug: options.debug,\n watch: options.watch,\n ui: options.ui,\n coverage: options.coverage,\n additionalHostDependencies,\n });\n\n if (options.watch && options.ui && tester.watch) {\n if (tester.onTestRunComplete) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tester.onTestRunComplete((results) => {\n if (this._callback) this._callback(results);\n results.components.forEach((component) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.pubsub.publish(OnTestsChanged, {\n testsChanged: {\n id: component.componentId.toString(),\n testsResults: component.results,\n loading: component.loading,\n },\n });\n });\n });\n }\n\n return tester.watch(testerContext);\n }\n\n const results = await tester.test(testerContext);\n\n return results;\n }\n}\n"],"mappings":"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"}
@@ -134,9 +134,8 @@ class TesterTask {
134
134
  artifacts: getArtifactDef(),
135
135
  // @ts-ignore
136
136
  componentsResults: testsResults.components.map(componentTests => {
137
- var _context$capsuleNetwo;
138
137
  const componentErrors = componentTests.errors;
139
- const component = (_context$capsuleNetwo = context.capsuleNetwork.graphCapsules.getCapsule(componentTests.componentId)) === null || _context$capsuleNetwo === void 0 ? void 0 : _context$capsuleNetwo.component;
138
+ const component = context.capsuleNetwork.graphCapsules.getCapsule(componentTests.componentId)?.component;
140
139
  if (!component) {
141
140
  throw new Error(`unable to find ${componentTests.componentId.toString()} in capsules`);
142
141
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_builder","data","require","_fsExtra","_interopRequireDefault","_path","_compiler","_component","_utils","_junitGenerator","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","components","capsuleNetwork","originalSeedersCapsules","getAllComponents","tester","env","getTester","componentsSpecFiles","ComponentMap","as","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","patternsWithCapsule","componentSpecFiles","get","Error","capsule","graphCapsules","getCapsule","compiler","getCompiler","toString","distFolder","getDistDir","distDir","componentDir","join","path","paths","map","specFile","distPath","getDistPathBySrcPath","relative","specFilesWithCapsule","patternEntry","val","testerContext","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","testsResultsToJUnitFormat","componentId","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","_context$capsuleNetwo","componentErrors","errors","metadata","tests","results","exports","CAPSULE_ARTIFACTS_DIR","name","globPatterns","rootDir"],"sources":["tester.task.ts"],"sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport fs from 'fs-extra';\nimport { join } from 'path';\nimport { Compiler, CompilerAspect } from '@teambit/compiler';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { ComponentMap } from '@teambit/component';\nimport { Tester } from './tester';\nimport { detectTestFiles } from './utils';\nimport { testsResultsToJUnitFormat } from './utils/junit-generator';\n\n/**\n * tester build task. Allows to test components during component build.\n */\nexport class TesterTask implements BuildTask {\n readonly name = 'TestComponents';\n readonly dependencies = [CompilerAspect.id];\n constructor(readonly aspectId: string, private devFiles: DevFilesMain) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const components = context.capsuleNetwork.originalSeedersCapsules.getAllComponents();\n const tester: Tester = context.env.getTester();\n const componentsSpecFiles = ComponentMap.as(components, (component) => {\n return detectTestFiles(component, this.devFiles);\n });\n\n const testCount = componentsSpecFiles.toArray().reduce((acc, [, specs]) => acc + specs.length, 0);\n if (testCount === 0)\n return {\n artifacts: [],\n componentsResults: [],\n };\n\n const patternsWithCapsule = ComponentMap.as(components, (component) => {\n const componentSpecFiles = componentsSpecFiles.get(component);\n if (!componentSpecFiles) throw new Error('capsule not found');\n const [, specs] = componentSpecFiles;\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('capsule not found');\n const compiler: Compiler = context.env.getCompiler();\n if (!compiler) {\n throw new Error(`compiler not found for ${component.id.toString()}`);\n }\n // @ts-ignore. not sure why ts complain that compiler might be undefined, when we check it above.\n const distFolder = compiler.getDistDir() || compiler.distDir;\n return {\n componentDir: join(capsule.path, distFolder),\n paths: specs.map((specFile) => {\n const distPath = compiler.getDistPathBySrcPath(specFile.relative);\n // TODO: fix spec type file need to capsule will return files with type AbstractVinyl\n return { path: join(capsule.path, distPath), relative: distPath };\n }),\n };\n });\n\n const specFilesWithCapsule = ComponentMap.as(components, (component) => {\n const patternEntry = patternsWithCapsule.get(component);\n // @ts-ignore\n const [, val] = patternEntry;\n return val.paths;\n });\n\n const testerContext = Object.assign(context, {\n release: true,\n specFiles: specFilesWithCapsule,\n rootPath: context.capsuleNetwork.capsulesRootDir,\n patterns: patternsWithCapsule,\n });\n\n // TODO: remove after fix AbstractVinyl on capsule\n // @ts-ignore\n const testsResults = await tester.test(testerContext);\n\n // write junit files\n await Promise.all(\n testsResults.components.map(async (compResult) => {\n const junit = testsResultsToJUnitFormat([compResult]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(compResult.componentId);\n if (!capsule) {\n throw new Error(`unable to find ${compResult.componentId.toString()} in capsules`);\n }\n await fs.outputFile(join(capsule.path, getJUnitArtifactPath()), junit);\n })\n );\n\n return {\n artifacts: getArtifactDef(), // @ts-ignore\n componentsResults: testsResults.components.map((componentTests) => {\n const componentErrors = componentTests.errors;\n const component = context.capsuleNetwork.graphCapsules.getCapsule(componentTests.componentId)?.component;\n if (!component) {\n throw new Error(`unable to find ${componentTests.componentId.toString()} in capsules`);\n }\n\n return {\n component,\n metadata: { tests: componentTests.results },\n errors: componentErrors,\n };\n }),\n };\n }\n}\n\nexport function getJUnitArtifactPath() {\n return join(CAPSULE_ARTIFACTS_DIR, '__bit_junit.xml');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'junit',\n globPatterns: [getJUnitArtifactPath()],\n rootDir: CAPSULE_ARTIFACTS_DIR,\n },\n ];\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_builder","data","require","_fsExtra","_interopRequireDefault","_path","_compiler","_component","_utils","_junitGenerator","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","components","capsuleNetwork","originalSeedersCapsules","getAllComponents","tester","env","getTester","componentsSpecFiles","ComponentMap","as","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","patternsWithCapsule","componentSpecFiles","get","Error","capsule","graphCapsules","getCapsule","compiler","getCompiler","toString","distFolder","getDistDir","distDir","componentDir","join","path","paths","map","specFile","distPath","getDistPathBySrcPath","relative","specFilesWithCapsule","patternEntry","val","testerContext","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","testsResultsToJUnitFormat","componentId","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","errors","metadata","tests","results","exports","CAPSULE_ARTIFACTS_DIR","name","globPatterns","rootDir"],"sources":["tester.task.ts"],"sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport fs from 'fs-extra';\nimport { join } from 'path';\nimport { Compiler, CompilerAspect } from '@teambit/compiler';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { ComponentMap } from '@teambit/component';\nimport { Tester } from './tester';\nimport { detectTestFiles } from './utils';\nimport { testsResultsToJUnitFormat } from './utils/junit-generator';\n\n/**\n * tester build task. Allows to test components during component build.\n */\nexport class TesterTask implements BuildTask {\n readonly name = 'TestComponents';\n readonly dependencies = [CompilerAspect.id];\n constructor(readonly aspectId: string, private devFiles: DevFilesMain) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const components = context.capsuleNetwork.originalSeedersCapsules.getAllComponents();\n const tester: Tester = context.env.getTester();\n const componentsSpecFiles = ComponentMap.as(components, (component) => {\n return detectTestFiles(component, this.devFiles);\n });\n\n const testCount = componentsSpecFiles.toArray().reduce((acc, [, specs]) => acc + specs.length, 0);\n if (testCount === 0)\n return {\n artifacts: [],\n componentsResults: [],\n };\n\n const patternsWithCapsule = ComponentMap.as(components, (component) => {\n const componentSpecFiles = componentsSpecFiles.get(component);\n if (!componentSpecFiles) throw new Error('capsule not found');\n const [, specs] = componentSpecFiles;\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);\n if (!capsule) throw new Error('capsule not found');\n const compiler: Compiler = context.env.getCompiler();\n if (!compiler) {\n throw new Error(`compiler not found for ${component.id.toString()}`);\n }\n // @ts-ignore. not sure why ts complain that compiler might be undefined, when we check it above.\n const distFolder = compiler.getDistDir() || compiler.distDir;\n return {\n componentDir: join(capsule.path, distFolder),\n paths: specs.map((specFile) => {\n const distPath = compiler.getDistPathBySrcPath(specFile.relative);\n // TODO: fix spec type file need to capsule will return files with type AbstractVinyl\n return { path: join(capsule.path, distPath), relative: distPath };\n }),\n };\n });\n\n const specFilesWithCapsule = ComponentMap.as(components, (component) => {\n const patternEntry = patternsWithCapsule.get(component);\n // @ts-ignore\n const [, val] = patternEntry;\n return val.paths;\n });\n\n const testerContext = Object.assign(context, {\n release: true,\n specFiles: specFilesWithCapsule,\n rootPath: context.capsuleNetwork.capsulesRootDir,\n patterns: patternsWithCapsule,\n });\n\n // TODO: remove after fix AbstractVinyl on capsule\n // @ts-ignore\n const testsResults = await tester.test(testerContext);\n\n // write junit files\n await Promise.all(\n testsResults.components.map(async (compResult) => {\n const junit = testsResultsToJUnitFormat([compResult]);\n const capsule = context.capsuleNetwork.graphCapsules.getCapsule(compResult.componentId);\n if (!capsule) {\n throw new Error(`unable to find ${compResult.componentId.toString()} in capsules`);\n }\n await fs.outputFile(join(capsule.path, getJUnitArtifactPath()), junit);\n })\n );\n\n return {\n artifacts: getArtifactDef(), // @ts-ignore\n componentsResults: testsResults.components.map((componentTests) => {\n const componentErrors = componentTests.errors;\n const component = context.capsuleNetwork.graphCapsules.getCapsule(componentTests.componentId)?.component;\n if (!component) {\n throw new Error(`unable to find ${componentTests.componentId.toString()} in capsules`);\n }\n\n return {\n component,\n metadata: { tests: componentTests.results },\n errors: componentErrors,\n };\n }),\n };\n }\n}\n\nexport function getJUnitArtifactPath() {\n return join(CAPSULE_ARTIFACTS_DIR, '__bit_junit.xml');\n}\n\nexport function getArtifactDef() {\n return [\n {\n name: 'junit',\n globPatterns: [getJUnitArtifactPath()],\n rootDir: CAPSULE_ARTIFACTS_DIR,\n },\n ];\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import React, { ComponentType } from 'react';
2
2
  import { SlotRegistry } from '@teambit/harmony';
3
3
  import { ComponentUI } from '@teambit/component';
4
4
  import { ComponentCompareUI } from '@teambit/component-compare';
5
- export declare type EmptyStateSlot = SlotRegistry<ComponentType>;
5
+ export type EmptyStateSlot = SlotRegistry<ComponentType>;
6
6
  export declare class TesterUI {
7
7
  private component;
8
8
  private emptyStateSlot;
@@ -14,8 +14,8 @@ export declare class TesterUI {
14
14
  * register a new tester empty state. this allows to register a different empty state from each environment for example.
15
15
  */
16
16
  registerEmptyState(emptyStateComponent: ComponentType): this;
17
- getTesterCompare(): React.JSX.Element;
18
- static slots: ((registerFn: () => string) => SlotRegistry<React.ComponentType<{}>>)[];
17
+ getTesterCompare(): JSX.Element;
18
+ static slots: ((registerFn: () => string) => SlotRegistry<React.ComponentType>)[];
19
19
  static provider([component, componentCompare]: [ComponentUI, ComponentCompareUI], config: any, [emptyStateSlot]: [EmptyStateSlot]): Promise<TesterUI>;
20
20
  }
21
21
  export default TesterUI;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { Section } from '@teambit/component';
3
3
  import { EmptyStateSlot } from './tester.ui.runtime';
4
4
  export declare class TestsSection implements Section {
@@ -6,7 +6,7 @@ export declare class TestsSection implements Section {
6
6
  constructor(emptyStateSlot: EmptyStateSlot);
7
7
  route: {
8
8
  path: string;
9
- element: React.JSX.Element;
9
+ element: JSX.Element;
10
10
  };
11
11
  navigationLink: {
12
12
  href: string;
@@ -22,13 +22,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
22
22
  function testsResultsToJUnitFormat(components) {
23
23
  const builder = _junitReportBuilder().default.newBuilder();
24
24
  components.forEach(compResult => {
25
- var _compResult$results, _compResult$results3;
26
25
  const suite = builder.testSuite().name(compResult.componentId.toString());
27
- if ((_compResult$results = compResult.results) !== null && _compResult$results !== void 0 && _compResult$results.start) {
28
- var _compResult$results2;
29
- suite.timestamp(new Date((_compResult$results2 = compResult.results) === null || _compResult$results2 === void 0 ? void 0 : _compResult$results2.start).toISOString());
26
+ if (compResult.results?.start) {
27
+ suite.timestamp(new Date(compResult.results?.start).toISOString());
30
28
  }
31
- (_compResult$results3 = compResult.results) === null || _compResult$results3 === void 0 || _compResult$results3.testFiles.forEach(testFile => {
29
+ compResult.results?.testFiles.forEach(testFile => {
32
30
  if (testFile.error) {
33
31
  const testCase = suite.testCase().className(testFile.file).name(testFile.file);
34
32
  testCase.error((0, _stripAnsi().default)(testFile.error.message));
@@ -1 +1 @@
1
- {"version":3,"names":["_junitReportBuilder","data","_interopRequireDefault","require","_stripAnsi","obj","__esModule","default","testsResultsToJUnitFormat","components","builder","junitReportBuilder","newBuilder","forEach","compResult","_compResult$results","_compResult$results3","suite","testSuite","name","componentId","toString","results","start","_compResult$results2","timestamp","Date","toISOString","testFiles","testFile","error","testCase","className","file","stripAnsi","message","tests","test","failure","status","skipped","duration","time","build"],"sources":["junit-generator.ts"],"sourcesContent":["import junitReportBuilder from 'junit-report-builder';\nimport stripAnsi from 'strip-ansi';\nimport { ComponentsResults } from '../tester';\n\nexport function testsResultsToJUnitFormat(components: ComponentsResults[]): string {\n const builder = junitReportBuilder.newBuilder();\n components.forEach((compResult) => {\n const suite = builder.testSuite().name(compResult.componentId.toString());\n if (compResult.results?.start) {\n suite.timestamp(new Date(compResult.results?.start).toISOString());\n }\n compResult.results?.testFiles.forEach((testFile) => {\n if (testFile.error) {\n const testCase = suite.testCase().className(testFile.file).name(testFile.file);\n testCase.error(stripAnsi(testFile.error.message as string));\n }\n testFile.tests.forEach((test) => {\n const testCase = suite.testCase().className(testFile.file).name(test.name);\n if (test.error) {\n testCase.error(stripAnsi(test.error));\n }\n if (test.failure) {\n testCase.failure(stripAnsi(test.failure));\n }\n if (test.status === 'skipped' || test.status === 'pending') {\n testCase.skipped();\n }\n if (test.duration) {\n testCase.time(test.duration / 1000);\n }\n });\n });\n });\n return builder.build();\n}\n"],"mappings":";;;;;;AAAA,SAAAA,oBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,mBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmC,SAAAC,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG5B,SAASG,yBAAyBA,CAACC,UAA+B,EAAU;EACjF,MAAMC,OAAO,GAAGC,6BAAkB,CAACC,UAAU,CAAC,CAAC;EAC/CH,UAAU,CAACI,OAAO,CAAEC,UAAU,IAAK;IAAA,IAAAC,mBAAA,EAAAC,oBAAA;IACjC,MAAMC,KAAK,GAAGP,OAAO,CAACQ,SAAS,CAAC,CAAC,CAACC,IAAI,CAACL,UAAU,CAACM,WAAW,CAACC,QAAQ,CAAC,CAAC,CAAC;IACzE,KAAAN,mBAAA,GAAID,UAAU,CAACQ,OAAO,cAAAP,mBAAA,eAAlBA,mBAAA,CAAoBQ,KAAK,EAAE;MAAA,IAAAC,oBAAA;MAC7BP,KAAK,CAACQ,SAAS,CAAC,IAAIC,IAAI,EAAAF,oBAAA,GAACV,UAAU,CAACQ,OAAO,cAAAE,oBAAA,uBAAlBA,oBAAA,CAAoBD,KAAK,CAAC,CAACI,WAAW,CAAC,CAAC,CAAC;IACpE;IACA,CAAAX,oBAAA,GAAAF,UAAU,CAACQ,OAAO,cAAAN,oBAAA,eAAlBA,oBAAA,CAAoBY,SAAS,CAACf,OAAO,CAAEgB,QAAQ,IAAK;MAClD,IAAIA,QAAQ,CAACC,KAAK,EAAE;QAClB,MAAMC,QAAQ,GAAGd,KAAK,CAACc,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACH,QAAQ,CAACI,IAAI,CAAC,CAACd,IAAI,CAACU,QAAQ,CAACI,IAAI,CAAC;QAC9EF,QAAQ,CAACD,KAAK,CAAC,IAAAI,oBAAS,EAACL,QAAQ,CAACC,KAAK,CAACK,OAAiB,CAAC,CAAC;MAC7D;MACAN,QAAQ,CAACO,KAAK,CAACvB,OAAO,CAAEwB,IAAI,IAAK;QAC/B,MAAMN,QAAQ,GAAGd,KAAK,CAACc,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACH,QAAQ,CAACI,IAAI,CAAC,CAACd,IAAI,CAACkB,IAAI,CAAClB,IAAI,CAAC;QAC1E,IAAIkB,IAAI,CAACP,KAAK,EAAE;UACdC,QAAQ,CAACD,KAAK,CAAC,IAAAI,oBAAS,EAACG,IAAI,CAACP,KAAK,CAAC,CAAC;QACvC;QACA,IAAIO,IAAI,CAACC,OAAO,EAAE;UAChBP,QAAQ,CAACO,OAAO,CAAC,IAAAJ,oBAAS,EAACG,IAAI,CAACC,OAAO,CAAC,CAAC;QAC3C;QACA,IAAID,IAAI,CAACE,MAAM,KAAK,SAAS,IAAIF,IAAI,CAACE,MAAM,KAAK,SAAS,EAAE;UAC1DR,QAAQ,CAACS,OAAO,CAAC,CAAC;QACpB;QACA,IAAIH,IAAI,CAACI,QAAQ,EAAE;UACjBV,QAAQ,CAACW,IAAI,CAACL,IAAI,CAACI,QAAQ,GAAG,IAAI,CAAC;QACrC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAO/B,OAAO,CAACiC,KAAK,CAAC,CAAC;AACxB"}
1
+ {"version":3,"names":["_junitReportBuilder","data","_interopRequireDefault","require","_stripAnsi","obj","__esModule","default","testsResultsToJUnitFormat","components","builder","junitReportBuilder","newBuilder","forEach","compResult","suite","testSuite","name","componentId","toString","results","start","timestamp","Date","toISOString","testFiles","testFile","error","testCase","className","file","stripAnsi","message","tests","test","failure","status","skipped","duration","time","build"],"sources":["junit-generator.ts"],"sourcesContent":["import junitReportBuilder from 'junit-report-builder';\nimport stripAnsi from 'strip-ansi';\nimport { ComponentsResults } from '../tester';\n\nexport function testsResultsToJUnitFormat(components: ComponentsResults[]): string {\n const builder = junitReportBuilder.newBuilder();\n components.forEach((compResult) => {\n const suite = builder.testSuite().name(compResult.componentId.toString());\n if (compResult.results?.start) {\n suite.timestamp(new Date(compResult.results?.start).toISOString());\n }\n compResult.results?.testFiles.forEach((testFile) => {\n if (testFile.error) {\n const testCase = suite.testCase().className(testFile.file).name(testFile.file);\n testCase.error(stripAnsi(testFile.error.message as string));\n }\n testFile.tests.forEach((test) => {\n const testCase = suite.testCase().className(testFile.file).name(test.name);\n if (test.error) {\n testCase.error(stripAnsi(test.error));\n }\n if (test.failure) {\n testCase.failure(stripAnsi(test.failure));\n }\n if (test.status === 'skipped' || test.status === 'pending') {\n testCase.skipped();\n }\n if (test.duration) {\n testCase.time(test.duration / 1000);\n }\n });\n });\n });\n return builder.build();\n}\n"],"mappings":";;;;;;AAAA,SAAAA,oBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,mBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmC,SAAAC,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG5B,SAASG,yBAAyBA,CAACC,UAA+B,EAAU;EACjF,MAAMC,OAAO,GAAGC,6BAAkB,CAACC,UAAU,CAAC,CAAC;EAC/CH,UAAU,CAACI,OAAO,CAAEC,UAAU,IAAK;IACjC,MAAMC,KAAK,GAAGL,OAAO,CAACM,SAAS,CAAC,CAAC,CAACC,IAAI,CAACH,UAAU,CAACI,WAAW,CAACC,QAAQ,CAAC,CAAC,CAAC;IACzE,IAAIL,UAAU,CAACM,OAAO,EAAEC,KAAK,EAAE;MAC7BN,KAAK,CAACO,SAAS,CAAC,IAAIC,IAAI,CAACT,UAAU,CAACM,OAAO,EAAEC,KAAK,CAAC,CAACG,WAAW,CAAC,CAAC,CAAC;IACpE;IACAV,UAAU,CAACM,OAAO,EAAEK,SAAS,CAACZ,OAAO,CAAEa,QAAQ,IAAK;MAClD,IAAIA,QAAQ,CAACC,KAAK,EAAE;QAClB,MAAMC,QAAQ,GAAGb,KAAK,CAACa,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACH,QAAQ,CAACI,IAAI,CAAC,CAACb,IAAI,CAACS,QAAQ,CAACI,IAAI,CAAC;QAC9EF,QAAQ,CAACD,KAAK,CAAC,IAAAI,oBAAS,EAACL,QAAQ,CAACC,KAAK,CAACK,OAAiB,CAAC,CAAC;MAC7D;MACAN,QAAQ,CAACO,KAAK,CAACpB,OAAO,CAAEqB,IAAI,IAAK;QAC/B,MAAMN,QAAQ,GAAGb,KAAK,CAACa,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACH,QAAQ,CAACI,IAAI,CAAC,CAACb,IAAI,CAACiB,IAAI,CAACjB,IAAI,CAAC;QAC1E,IAAIiB,IAAI,CAACP,KAAK,EAAE;UACdC,QAAQ,CAACD,KAAK,CAAC,IAAAI,oBAAS,EAACG,IAAI,CAACP,KAAK,CAAC,CAAC;QACvC;QACA,IAAIO,IAAI,CAACC,OAAO,EAAE;UAChBP,QAAQ,CAACO,OAAO,CAAC,IAAAJ,oBAAS,EAACG,IAAI,CAACC,OAAO,CAAC,CAAC;QAC3C;QACA,IAAID,IAAI,CAACE,MAAM,KAAK,SAAS,IAAIF,IAAI,CAACE,MAAM,KAAK,SAAS,EAAE;UAC1DR,QAAQ,CAACS,OAAO,CAAC,CAAC;QACpB;QACA,IAAIH,IAAI,CAACI,QAAQ,EAAE;UACjBV,QAAQ,CAACW,IAAI,CAACL,IAAI,CAACI,QAAQ,GAAG,IAAI,CAAC;QACrC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAO5B,OAAO,CAAC8B,KAAK,CAAC,CAAC;AACxB"}
package/index.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { TesterAspect } from './tester.aspect';
2
+
3
+ export { Tests } from './tester';
4
+ export type { TesterEnv } from './tester-env';
5
+ export type {
6
+ Tester,
7
+ TesterContext,
8
+ CallbackFn,
9
+ SpecFiles,
10
+ ComponentPatternsMap,
11
+ ComponentsResults,
12
+ ComponentPatternsEntry,
13
+ } from './tester';
14
+ export type { TesterMain } from './tester.main.runtime';
15
+ export type { TesterUI, EmptyStateSlot } from './tester.ui.runtime';
16
+
17
+ export { TesterAspect };
18
+ export default TesterAspect;