@teambit/tester 0.0.876 → 0.0.878

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { TesterAspect } from './tester.aspect';
2
2
  export { Tests } from './tester';
3
- export type { Tester, TesterContext, CallbackFn, SpecFiles, ComponentPatternsMap, ComponentsResults, ComponentPatternsEntry } from './tester';
3
+ export type { Tester, TesterContext, CallbackFn, SpecFiles, ComponentPatternsMap, ComponentsResults, ComponentPatternsEntry, } from './tester';
4
4
  export type { TesterMain } from './tester.main.runtime';
5
5
  export type { TesterUI, EmptyStateSlot } from './tester.ui.runtime';
6
6
  export { TesterAspect };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["TesterAspect"],"sources":["index.ts"],"sourcesContent":["import { TesterAspect } from './tester.aspect';\n\nexport { Tests } from './tester';\nexport type { Tester, TesterContext, CallbackFn, SpecFiles, ComponentPatternsMap, ComponentsResults, ComponentPatternsEntry } from './tester';\nexport type { TesterMain } from './tester.main.runtime';\nexport type { TesterUI, EmptyStateSlot } from './tester.ui.runtime';\n\nexport { TesterAspect };\nexport default TesterAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;eAMeA,sB"}
1
+ {"version":3,"names":["TesterAspect"],"sources":["index.ts"],"sourcesContent":["import { TesterAspect } from './tester.aspect';\n\nexport { Tests } from './tester';\nexport type {\n Tester,\n TesterContext,\n CallbackFn,\n SpecFiles,\n ComponentPatternsMap,\n ComponentsResults,\n ComponentPatternsEntry,\n} from './tester';\nexport type { TesterMain } from './tester.main.runtime';\nexport type { TesterUI, EmptyStateSlot } from './tester.ui.runtime';\n\nexport { TesterAspect };\nexport default TesterAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;eAceA,sB"}
@@ -1 +1 @@
1
- {"version":3,"names":["Tests","constructor","components","errors","map","comp","flat"],"sources":["tester.ts"],"sourcesContent":["import { Component, ComponentID, ComponentMap } from '@teambit/component';\nimport { ExecutionContext } from '@teambit/envs';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { TestsResult } from '@teambit/tests-results';\n\nexport class Tests {\n constructor(public components: ComponentsResults[]) {}\n get errors(): Error[] {\n return this.components.map((comp) => comp.errors || []).flat();\n }\n}\n\nexport type ComponentsResults = {\n /**\n * component id.\n */\n componentId: ComponentID;\n /**\n * test results for the component.\n */\n results?: TestsResult;\n /**\n * aggregated errors from all files\n */\n errors?: Error[];\n\n /**\n * loading.\n */\n loading?: boolean;\n};\n\nexport type SpecFiles = ComponentMap<AbstractVinyl[]>;\nexport type ComponentPatternsEntry = { componentDir: string, paths: {path: string; relative: string}[]};\nexport type ComponentPatternsMap = ComponentMap<ComponentPatternsEntry>;\n\nexport interface TesterContext extends ExecutionContext {\n /**\n * whether the tester run for release (during bit build/tag) or not (during bit test command).\n */\n release: boolean;\n\n /**\n * list of components to test.\n */\n components: Component[];\n\n /**\n * component workspace.\n */\n // workspace: Workspace;\n\n /**\n * defines whether tester is expected to run in quiet mode.\n */\n quiet?: boolean;\n\n /**\n * list of spec files to test.\n */\n specFiles: SpecFiles;\n\n /**\n * rootPath of the component workspace or the capsule root dir (during build).\n */\n rootPath: string;\n\n /**\n * determines whether tester is expected to run in debug mode.\n */\n debug?: boolean;\n\n /**\n * is start from ui\n */\n ui?: boolean;\n\n /**\n * determines whether to start the tester in watch mode.\n */\n watch?: boolean;\n\n /**\n * whether the tester should show code coverage\n */\n coverage?: boolean;\n\n /**\n * array of patterns to test.\n */\n patterns: ComponentPatternsMap;\n\n /**\n *\n * additional test host dependencies\n * This can be used in cases when you want specific dependencies to be resolved from the env during testing\n * but you don't want these dependencies as peer dependencies of the component (as they are not used during runtime)\n * An example for this is @angular/compiler, which during running tests you want to resolve from the env, but you don't\n * need it during component runtime.\n */\n additionalHostDependencies?: string[];\n}\n\n/**\n * tester interface allows extensions to implement a component tester into bit.\n */\nexport interface Tester {\n /**\n * display name of the tester.\n */\n displayName?: string;\n\n /**\n * icon of the tester.\n */\n icon?: string;\n\n /**\n * serialized config of the tester.\n */\n displayConfig?(): string;\n\n /**\n * path to the config in the filesystem.\n */\n configPath?: string;\n\n /**\n * id of the tester.\n */\n id: string;\n\n /**\n * on test run complete. (applies only during watch)\n * @param callback\n */\n onTestRunComplete?(callback: CallbackFn): Promise<void>;\n\n /**\n * execute tests on all components in the given execution context.\n */\n test(context: TesterContext): Promise<Tests>;\n\n /**\n * watch tests on all components\n */\n watch?(context: TesterContext): Promise<Tests>;\n /**\n * return the tester version.\n */\n version(): string;\n}\nexport type CallbackFn = (testSuite: Tests) => void;\n"],"mappings":";;;;;;;;;;;AAKO,MAAMA,KAAN,CAAY;EACjBC,WAAW,CAAQC,UAAR,EAAyC;IAAA,KAAjCA,UAAiC,GAAjCA,UAAiC;EAAE;;EAC5C,IAANC,MAAM,GAAY;IACpB,OAAO,KAAKD,UAAL,CAAgBE,GAAhB,CAAqBC,IAAD,IAAUA,IAAI,CAACF,MAAL,IAAe,EAA7C,EAAiDG,IAAjD,EAAP;EACD;;AAJgB"}
1
+ {"version":3,"names":["Tests","constructor","components","errors","map","comp","flat"],"sources":["tester.ts"],"sourcesContent":["import { Component, ComponentID, ComponentMap } from '@teambit/component';\nimport { ExecutionContext } from '@teambit/envs';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { TestsResult } from '@teambit/tests-results';\n\nexport class Tests {\n constructor(public components: ComponentsResults[]) {}\n get errors(): Error[] {\n return this.components.map((comp) => comp.errors || []).flat();\n }\n}\n\nexport type ComponentsResults = {\n /**\n * component id.\n */\n componentId: ComponentID;\n /**\n * test results for the component.\n */\n results?: TestsResult;\n /**\n * aggregated errors from all files\n */\n errors?: Error[];\n\n /**\n * loading.\n */\n loading?: boolean;\n};\n\nexport type SpecFiles = ComponentMap<AbstractVinyl[]>;\nexport type ComponentPatternsEntry = { componentDir: string; paths: { path: string; relative: string }[] };\nexport type ComponentPatternsMap = ComponentMap<ComponentPatternsEntry>;\n\nexport interface TesterContext extends ExecutionContext {\n /**\n * whether the tester run for release (during bit build/tag) or not (during bit test command).\n */\n release: boolean;\n\n /**\n * list of components to test.\n */\n components: Component[];\n\n /**\n * component workspace.\n */\n // workspace: Workspace;\n\n /**\n * defines whether tester is expected to run in quiet mode.\n */\n quiet?: boolean;\n\n /**\n * list of spec files to test.\n */\n specFiles: SpecFiles;\n\n /**\n * rootPath of the component workspace or the capsule root dir (during build).\n */\n rootPath: string;\n\n /**\n * determines whether tester is expected to run in debug mode.\n */\n debug?: boolean;\n\n /**\n * is start from ui\n */\n ui?: boolean;\n\n /**\n * determines whether to start the tester in watch mode.\n */\n watch?: boolean;\n\n /**\n * whether the tester should show code coverage\n */\n coverage?: boolean;\n\n /**\n * array of patterns to test.\n */\n patterns: ComponentPatternsMap;\n\n /**\n *\n * additional test host dependencies\n * This can be used in cases when you want specific dependencies to be resolved from the env during testing\n * but you don't want these dependencies as peer dependencies of the component (as they are not used during runtime)\n * An example for this is @angular/compiler, which during running tests you want to resolve from the env, but you don't\n * need it during component runtime.\n */\n additionalHostDependencies?: string[];\n}\n\n/**\n * tester interface allows extensions to implement a component tester into bit.\n */\nexport interface Tester {\n /**\n * display name of the tester.\n */\n displayName?: string;\n\n /**\n * icon of the tester.\n */\n icon?: string;\n\n /**\n * serialized config of the tester.\n */\n displayConfig?(): string;\n\n /**\n * path to the config in the filesystem.\n */\n configPath?: string;\n\n /**\n * id of the tester.\n */\n id: string;\n\n /**\n * on test run complete. (applies only during watch)\n * @param callback\n */\n onTestRunComplete?(callback: CallbackFn): Promise<void>;\n\n /**\n * execute tests on all components in the given execution context.\n */\n test(context: TesterContext): Promise<Tests>;\n\n /**\n * watch tests on all components\n */\n watch?(context: TesterContext): Promise<Tests>;\n /**\n * return the tester version.\n */\n version(): string;\n}\nexport type CallbackFn = (testSuite: Tests) => void;\n"],"mappings":";;;;;;;;;;;AAKO,MAAMA,KAAN,CAAY;EACjBC,WAAW,CAAQC,UAAR,EAAyC;IAAA,KAAjCA,UAAiC,GAAjCA,UAAiC;EAAE;;EAC5C,IAANC,MAAM,GAAY;IACpB,OAAO,KAAKD,UAAL,CAAgBE,GAAhB,CAAqBC,IAAD,IAAUA,IAAI,CAACF,MAAL,IAAe,EAA7C,EAAiDG,IAAjD,EAAP;EACD;;AAJgB"}
@@ -1 +1 @@
1
- {"version":3,"names":["chalk","require","OnTestsChanged","TesterService","constructor","workspace","logger","pubsub","devFiles","render","env","descriptor","getDescriptor","id","displayName","version","highlight","config","language","ignoreIllegals","environment","getTester","undefined","tester","icon","displayConfig","onTestRunComplete","callback","_callback","run","context","options","specFiles","ComponentMap","as","components","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","componentWithTests","ui","consoleWarning","cyan","Tests","console","patterns","componentDir","componentPatterns","getDevPatterns","TesterAspect","paths","map","pattern","path","resolve","relative","additionalHostDependencies","getAdditionalTestHostDependencies","testerContext","Object","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 } 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\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 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 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 = ComponentMap.as(context.components, (component) => {\n const componentDir = this.workspace.componentDir(component.id);\n const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);\n return {\n componentDir,\n paths: 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":["chalk","require","OnTestsChanged","TesterService","constructor","workspace","logger","pubsub","devFiles","render","env","descriptor","getDescriptor","id","displayName","version","highlight","config","language","ignoreIllegals","environment","getTester","undefined","tester","icon","displayConfig","onTestRunComplete","callback","_callback","run","context","options","specFiles","ComponentMap","as","components","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","componentWithTests","ui","consoleWarning","cyan","Tests","console","patterns","componentDir","componentPatterns","getDevPatterns","TesterAspect","paths","map","pattern","path","resolve","relative","additionalHostDependencies","getAdditionalTestHostDependencies","testerContext","Object","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 } 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\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 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 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 = ComponentMap.as(context.components, (component) => {\n const componentDir = this.workspace.componentDir(component.id);\n const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);\n return {\n componentDir,\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 +1 @@
1
- {"version":3,"names":["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","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","testsResultsToJUnitFormat","componentId","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","errors","metadata","tests","results","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":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;AACA;AACA;AACO,MAAMA,UAAN,CAAsC;EAG3CC,WAAW,CAAUC,QAAV,EAAoCC,QAApC,EAA4D;IAAA,KAAlDD,QAAkD,GAAlDA,QAAkD;IAAA,KAAxBC,QAAwB,GAAxBA,QAAwB;IAAA,8CAFvD,gBAEuD;IAAA,sDAD/C,CAACC,0BAAA,CAAeC,EAAhB,CAC+C;EAAE;;EAE5D,MAAPC,OAAO,CAACC,OAAD,EAAkD;IAC7D,MAAMC,UAAU,GAAGD,OAAO,CAACE,cAAR,CAAuBC,uBAAvB,CAA+CC,gBAA/C,EAAnB;IACA,MAAMC,MAAc,GAAGL,OAAO,CAACM,GAAR,CAAYC,SAAZ,EAAvB;;IACA,MAAMC,mBAAmB,GAAGC,yBAAA,CAAaC,EAAb,CAAgBT,UAAhB,EAA6BU,SAAD,IAAe;MACrE,OAAO,IAAAC,wBAAA,EAAgBD,SAAhB,EAA2B,KAAKf,QAAhC,CAAP;IACD,CAF2B,CAA5B;;IAIA,MAAMiB,SAAS,GAAGL,mBAAmB,CAACM,OAApB,GAA8BC,MAA9B,CAAqC,CAACC,GAAD,EAAM,GAAGC,KAAH,CAAN,KAAoBD,GAAG,GAAGC,KAAK,CAACC,MAArE,EAA6E,CAA7E,CAAlB;IACA,IAAIL,SAAS,KAAK,CAAlB,EACE,OAAO;MACLM,SAAS,EAAE,EADN;MAELC,iBAAiB,EAAE;IAFd,CAAP;;IAKF,MAAMC,mBAAmB,GAAGZ,yBAAA,CAAaC,EAAb,CAAgBT,UAAhB,EAA6BU,SAAD,IAAe;MACrE,MAAMW,kBAAkB,GAAGd,mBAAmB,CAACe,GAApB,CAAwBZ,SAAxB,CAA3B;MACA,IAAI,CAACW,kBAAL,EAAyB,MAAM,IAAIE,KAAJ,CAAU,mBAAV,CAAN;MACzB,MAAM,GAAGP,KAAH,IAAYK,kBAAlB;MACA,MAAMG,OAAO,GAAGzB,OAAO,CAACE,cAAR,CAAuBwB,aAAvB,CAAqCC,UAArC,CAAgDhB,SAAS,CAACb,EAA1D,CAAhB;MACA,IAAI,CAAC2B,OAAL,EAAc,MAAM,IAAID,KAAJ,CAAU,mBAAV,CAAN;MACd,MAAMI,QAAkB,GAAG5B,OAAO,CAACM,GAAR,CAAYuB,WAAZ,EAA3B;;MACA,IAAI,CAACD,QAAL,EAAc;QACZ,MAAM,IAAIJ,KAAJ,CAAW,0BAAyBb,SAAS,CAACb,EAAV,CAAagC,QAAb,EAAwB,EAA5D,CAAN;MACD,CAToE,CAUrE;;;MACA,MAAMC,UAAU,GAAGH,QAAQ,CAACI,UAAT,MAAyBJ,QAAQ,CAACK,OAArD;MACA,OAAO;QACLC,YAAY,EAAE,IAAAC,YAAA,EAAKV,OAAO,CAACW,IAAb,EAAmBL,UAAnB,CADT;QAELM,KAAK,EAAEpB,KAAK,CAACqB,GAAN,CAAWC,QAAD,IAAc;UAC7B,MAAMC,QAAQ,GAAGZ,QAAQ,CAACa,oBAAT,CAA8BF,QAAQ,CAACG,QAAvC,CAAjB,CAD6B,CAE7B;;UACA,OAAO;YAAEN,IAAI,EAAE,IAAAD,YAAA,EAAKV,OAAO,CAACW,IAAb,EAAmBI,QAAnB,CAAR;YAAsCE,QAAQ,EAAEF;UAAhD,CAAP;QACD,CAJM;MAFF,CAAP;IAQD,CApB2B,CAA5B;;IAsBA,MAAMG,oBAAoB,GAAGlC,yBAAA,CAAaC,EAAb,CAAgBT,UAAhB,EAA6BU,SAAD,IAAe;MACtE,MAAMiC,YAAY,GAAGvB,mBAAmB,CAACE,GAApB,CAAwBZ,SAAxB,CAArB,CADsE,CAEtE;;MACA,MAAM,GAAGkC,GAAH,IAAUD,YAAhB;MACA,OAAOC,GAAG,CAACR,KAAX;IACD,CAL4B,CAA7B;;IAOA,MAAMS,aAAa,GAAGC,MAAM,CAACC,MAAP,CAAchD,OAAd,EAAuB;MAC3CiD,OAAO,EAAE,IADkC;MAE3CC,SAAS,EAAEP,oBAFgC;MAG3CQ,QAAQ,EAAEnD,OAAO,CAACE,cAAR,CAAuBkD,eAHU;MAI3CC,QAAQ,EAAEhC;IAJiC,CAAvB,CAAtB,CA3C6D,CAkD7D;IACA;;IACA,MAAMiC,YAAY,GAAG,MAAMjD,MAAM,CAACkD,IAAP,CAAYT,aAAZ,CAA3B,CApD6D,CAsD7D;;IACA,MAAMU,OAAO,CAACC,GAAR,CACJH,YAAY,CAACrD,UAAb,CAAwBqC,GAAxB,CAA4B,MAAOoB,UAAP,IAAsB;MAChD,MAAMC,KAAK,GAAG,IAAAC,2CAAA,EAA0B,CAACF,UAAD,CAA1B,CAAd;MACA,MAAMjC,OAAO,GAAGzB,OAAO,CAACE,cAAR,CAAuBwB,aAAvB,CAAqCC,UAArC,CAAgD+B,UAAU,CAACG,WAA3D,CAAhB;;MACA,IAAI,CAACpC,OAAL,EAAc;QACZ,MAAM,IAAID,KAAJ,CAAW,kBAAiBkC,UAAU,CAACG,WAAX,CAAuB/B,QAAvB,EAAkC,cAA9D,CAAN;MACD;;MACD,MAAMgC,kBAAA,CAAGC,UAAH,CAAc,IAAA5B,YAAA,EAAKV,OAAO,CAACW,IAAb,EAAmB4B,oBAAoB,EAAvC,CAAd,EAA0DL,KAA1D,CAAN;IACD,CAPD,CADI,CAAN;IAWA,OAAO;MACLxC,SAAS,EAAE8C,cAAc,EADpB;MACwB;MAC7B7C,iBAAiB,EAAEkC,YAAY,CAACrD,UAAb,CAAwBqC,GAAxB,CAA6B4B,cAAD,IAAoB;QAAA;;QACjE,MAAMC,eAAe,GAAGD,cAAc,CAACE,MAAvC;QACA,MAAMzD,SAAS,4BAAGX,OAAO,CAACE,cAAR,CAAuBwB,aAAvB,CAAqCC,UAArC,CAAgDuC,cAAc,CAACL,WAA/D,CAAH,0DAAG,sBAA6ElD,SAA/F;;QACA,IAAI,CAACA,SAAL,EAAgB;UACd,MAAM,IAAIa,KAAJ,CAAW,kBAAiB0C,cAAc,CAACL,WAAf,CAA2B/B,QAA3B,EAAsC,cAAlE,CAAN;QACD;;QAED,OAAO;UACLnB,SADK;UAEL0D,QAAQ,EAAE;YAAEC,KAAK,EAAEJ,cAAc,CAACK;UAAxB,CAFL;UAGLH,MAAM,EAAED;QAHH,CAAP;MAKD,CAZkB;IAFd,CAAP;EAgBD;;AAvF0C;;;;AA0FtC,SAASH,oBAAT,GAAgC;EACrC,OAAO,IAAA7B,YAAA,EAAKqC,gCAAL,EAA4B,iBAA5B,CAAP;AACD;;AAEM,SAASP,cAAT,GAA0B;EAC/B,OAAO,CACL;IACEQ,IAAI,EAAE,OADR;IAEEC,YAAY,EAAE,CAACV,oBAAoB,EAArB,CAFhB;IAGEW,OAAO,EAAEH;EAHX,CADK,CAAP;AAOD"}
1
+ {"version":3,"names":["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","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","testsResultsToJUnitFormat","componentId","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","errors","metadata","tests","results","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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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/tester",
3
- "version": "0.0.876",
3
+ "version": "0.0.878",
4
4
  "homepage": "https://bit.dev/teambit/defender/tester",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.defender",
8
8
  "name": "tester",
9
- "version": "0.0.876"
9
+ "version": "0.0.878"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -22,20 +22,20 @@
22
22
  "@babel/runtime": "7.12.18",
23
23
  "core-js": "^3.0.0",
24
24
  "@teambit/harmony": "0.3.3",
25
- "@teambit/cli": "0.0.586",
26
- "@teambit/logger": "0.0.679",
27
- "@teambit/workspace": "0.0.876",
28
- "@teambit/component": "0.0.876",
29
- "@teambit/defender.ui.test-compare": "0.0.100",
30
- "@teambit/graphql": "0.0.876",
31
- "@teambit/builder": "0.0.876",
32
- "@teambit/dev-files": "0.0.876",
33
- "@teambit/envs": "0.0.876",
25
+ "@teambit/cli": "0.0.588",
26
+ "@teambit/logger": "0.0.681",
27
+ "@teambit/workspace": "0.0.878",
28
+ "@teambit/component": "0.0.878",
29
+ "@teambit/defender.ui.test-compare": "0.0.102",
30
+ "@teambit/graphql": "0.0.878",
31
+ "@teambit/builder": "0.0.878",
32
+ "@teambit/dev-files": "0.0.878",
33
+ "@teambit/envs": "0.0.878",
34
34
  "@teambit/tests-results": "0.0.103",
35
- "@teambit/ui": "0.0.876",
36
- "@teambit/compiler": "0.0.876",
37
- "@teambit/component-compare": "0.0.124",
38
- "@teambit/defender.ui.test-page": "0.0.9",
35
+ "@teambit/ui": "0.0.878",
36
+ "@teambit/compiler": "0.0.878",
37
+ "@teambit/component-compare": "0.0.126",
38
+ "@teambit/defender.ui.test-page": "0.0.10",
39
39
  "@teambit/bit-error": "0.0.400"
40
40
  },
41
41
  "devDependencies": {
@@ -51,7 +51,7 @@
51
51
  "@teambit/defender.content.tester-overview": "1.95.0"
52
52
  },
53
53
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.367",
54
+ "@teambit/legacy": "1.0.369",
55
55
  "react-dom": "^16.8.0 || ^17.0.0",
56
56
  "react": "^16.8.0 || ^17.0.0"
57
57
  },
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.876/dist/tester.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.876/dist/tester.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.878/dist/tester.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.878/dist/tester.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -120,11 +120,12 @@ export class TesterService implements EnvService<Tests, TesterDescriptor> {
120
120
  const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);
121
121
  return {
122
122
  componentDir,
123
- paths: componentPatterns.map((pattern: string) => ({
124
- path: resolve(componentDir, pattern),
125
- relative: pattern,
126
- })) || [],
127
- }
123
+ paths:
124
+ componentPatterns.map((pattern: string) => ({
125
+ path: resolve(componentDir, pattern),
126
+ relative: pattern,
127
+ })) || [],
128
+ };
128
129
  });
129
130
 
130
131
  let additionalHostDependencies = [];