@teambit/tester 0.0.1064 → 0.0.1066

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@0.0.1064/dist/tester.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.1064/dist/tester.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.1066/dist/tester.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.1066/dist/tester.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1 +1 @@
1
- {"version":3,"names":["TestCmd","constructor","tester","workspace","logger","name","description","COMPONENT_PATTERN_HELP","render","userPattern","watch","debug","all","env","scope","junit","coverage","timer","Timer","create","scopeName","undefined","consoleWarning","start","OutsideWorkspaceError","getPatternWithScope","pattern","patternWithScope","components","getComponentsByUserInput","length","code","data","console","chalk","cyan","off","tests","test","hasErrors","seconds","stop"],"sources":["test.cmd.tsx"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { Timer } from '@teambit/legacy/dist/toolbox/timer';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { Box, Text } from 'ink';\nimport React from 'react';\nimport type { TesterMain } from './tester.main.runtime';\n\ntype TestFlags = {\n watch: boolean;\n debug: boolean;\n all: boolean;\n env?: string;\n scope?: string;\n junit?: string;\n coverage?: boolean;\n};\n\nexport class TestCmd implements Command {\n name = 'test [component-pattern]';\n description = 'test components in the workspace';\n helpUrl = 'reference/testing/tester-overview';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = 'at';\n group = 'development';\n options = [\n ['w', 'watch', 'start the tester in watch mode.'],\n ['d', 'debug', 'start the tester in debug mode.'],\n ['a', 'all', 'test all components, not only new and modified'],\n ['', 'junit <filepath>', 'write tests results as JUnit XML format into the specified file path'],\n ['', 'coverage', 'show code coverage data'],\n ['e', 'env <id>', 'test only the given env'],\n [\n 's',\n 'scope <scope-name>',\n 'DEPRECATED. (use the pattern instead, e.g. \"scopeName/**\"). name of the scope to test',\n ],\n // TODO: we need to reduce this redundant casting every time.\n ] as CommandOptions;\n\n constructor(private tester: TesterMain, private workspace: Workspace, private logger: Logger) {}\n\n async render(\n [userPattern]: [string],\n { watch = false, debug = false, all = false, env, scope, junit, coverage = false }: TestFlags\n ) {\n const timer = Timer.create();\n const scopeName = typeof scope === 'string' ? scope : undefined;\n if (scopeName) {\n this.logger.consoleWarning(\n `--scope is deprecated, use the pattern argument instead. e.g. \"scopeName/**\" for the entire scope`\n );\n }\n timer.start();\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const getPatternWithScope = () => {\n if (!userPattern && !scope) return undefined;\n const pattern = userPattern || '**';\n return scopeName ? `${scopeName}/${pattern}` : pattern;\n };\n const patternWithScope = getPatternWithScope();\n const components = await this.workspace.getComponentsByUserInput(all, patternWithScope, true);\n if (!components.length) {\n return {\n code: 0,\n data: (\n <Box>\n <Text bold>\n no components found to test. use \"--all\" flag to test all components or specify the ids to test,\n otherwise, only new and modified components will be tested{' '}\n </Text>\n </Box>\n ),\n };\n }\n\n this.logger.console(\n `testing total of ${components.length} components in workspace '${chalk.cyan(this.workspace.name)}'`\n );\n\n let code = 0;\n if (watch && !debug) {\n // avoid turning off the logger for non-watch scenario. otherwise, when this aspect throws errors, they'll be\n // swallowed. (Jest errors are shown regardless via Jest, but if the tester is unable to run Jest in the first\n // place, these errors won't be shown)\n this.logger.off();\n await this.tester.watch(components, {\n watch,\n debug,\n env,\n coverage,\n });\n } else {\n const tests = await this.tester.test(components, {\n watch,\n debug,\n env,\n junit,\n coverage,\n });\n if (tests.hasErrors()) code = 1;\n }\n const { seconds } = timer.stop();\n\n if (watch) return <Box></Box>;\n return {\n code,\n data: (\n <Box>\n <Text>test has been completed in </Text>\n <Text color=\"cyan\">{seconds} </Text>\n <Text>seconds.</Text>\n </Box>\n ),\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["TestCmd","constructor","tester","workspace","logger","name","description","COMPONENT_PATTERN_HELP","render","userPattern","watch","debug","all","env","scope","junit","coverage","timer","Timer","create","scopeName","undefined","consoleWarning","start","OutsideWorkspaceError","getPatternWithScope","pattern","patternWithScope","components","getComponentsByUserInput","length","code","data","console","chalk","cyan","off","tests","test","hasErrors","seconds","stop"],"sources":["test.cmd.tsx"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { Timer } from '@teambit/legacy/dist/toolbox/timer';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { Box, Text } from 'ink';\nimport React from 'react';\nimport type { TesterMain } from './tester.main.runtime';\n\ntype TestFlags = {\n watch: boolean;\n debug: boolean;\n all: boolean;\n env?: string;\n scope?: string;\n junit?: string;\n coverage?: boolean;\n};\n\nexport class TestCmd implements Command {\n name = 'test [component-pattern]';\n description = 'test components in the workspace';\n helpUrl = 'reference/testing/tester-overview';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n alias = 'at';\n group = 'development';\n options = [\n ['w', 'watch', 'start the tester in watch mode.'],\n ['d', 'debug', 'start the tester in debug mode.'],\n ['a', 'all', 'test all components, not only new and modified'],\n ['', 'junit <filepath>', 'write tests results as JUnit XML format into the specified file path'],\n ['', 'coverage', 'show code coverage data'],\n ['e', 'env <id>', 'test only the given env'],\n [\n 's',\n 'scope <scope-name>',\n 'DEPRECATED. (use the pattern instead, e.g. \"scopeName/**\"). name of the scope to test',\n ],\n // TODO: we need to reduce this redundant casting every time.\n ] as CommandOptions;\n\n constructor(private tester: TesterMain, private workspace: Workspace, private logger: Logger) {}\n\n async render(\n [userPattern]: [string],\n { watch = false, debug = false, all = false, env, scope, junit, coverage = false }: TestFlags\n ) {\n const timer = Timer.create();\n const scopeName = typeof scope === 'string' ? scope : undefined;\n if (scopeName) {\n this.logger.consoleWarning(\n `--scope is deprecated, use the pattern argument instead. e.g. \"scopeName/**\" for the entire scope`\n );\n }\n timer.start();\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const getPatternWithScope = () => {\n if (!userPattern && !scope) return undefined;\n const pattern = userPattern || '**';\n return scopeName ? `${scopeName}/${pattern}` : pattern;\n };\n const patternWithScope = getPatternWithScope();\n const components = await this.workspace.getComponentsByUserInput(all, patternWithScope, true);\n if (!components.length) {\n return {\n code: 0,\n data: (\n <Box>\n <Text bold>\n no components found to test. use \"--all\" flag to test all components or specify the ids to test,\n otherwise, only new and modified components will be tested{' '}\n </Text>\n </Box>\n ),\n };\n }\n\n this.logger.console(\n `testing total of ${components.length} components in workspace '${chalk.cyan(this.workspace.name)}'`\n );\n\n let code = 0;\n if (watch && !debug) {\n // avoid turning off the logger for non-watch scenario. otherwise, when this aspect throws errors, they'll be\n // swallowed. (Jest errors are shown regardless via Jest, but if the tester is unable to run Jest in the first\n // place, these errors won't be shown)\n this.logger.off();\n await this.tester.watch(components, {\n watch,\n debug,\n env,\n coverage,\n });\n } else {\n const tests = await this.tester.test(components, {\n watch,\n debug,\n env,\n junit,\n coverage,\n });\n if (tests.hasErrors()) code = 1;\n }\n const { seconds } = timer.stop();\n\n if (watch) return <Box></Box>;\n return {\n code,\n data: (\n <Box>\n <Text>test has been completed in </Text>\n <Text color=\"cyan\">{seconds} </Text>\n <Text>seconds.</Text>\n </Box>\n ),\n };\n }\n}\n"],"mappings":"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"}
@@ -115,12 +115,15 @@ export declare class TesterMain {
115
115
  * Get the tests patterns from the config. (used as default patterns in case the env does not provide them via getTestsDevPatterns)
116
116
  * @returns
117
117
  */
118
- getPatterns(): {
118
+ getPatterns(): string[];
119
+ getComponentDevPatterns(component: Component): {
120
+ name: string;
121
+ pattern: string[];
122
+ };
123
+ getDevPatternToRegister(): (component: Component) => {
119
124
  name: string;
120
125
  pattern: string[];
121
126
  };
122
- getComponentDevPatterns(component: Component): string[];
123
- getDevPatternToRegister(): (component: Component) => string[];
124
127
  /**
125
128
  * get all test files of a component.
126
129
  */
@@ -244,15 +244,15 @@ class TesterMain {
244
244
  * @returns
245
245
  */
246
246
  getPatterns() {
247
- return {
248
- name: 'tests',
249
- pattern: this.patterns
250
- };
247
+ return this.patterns;
251
248
  }
252
249
  getComponentDevPatterns(component) {
253
250
  const env = this.envs.calculateEnv(component).env;
254
251
  const componentPatterns = env.getTestsDevPatterns ? env.getTestsDevPatterns(component) : this.getPatterns();
255
- return componentPatterns;
252
+ return {
253
+ name: 'tests',
254
+ pattern: componentPatterns
255
+ };
256
256
  }
257
257
  getDevPatternToRegister() {
258
258
  return this.getComponentDevPatterns.bind(this);
@@ -1 +1 @@
1
- {"version":3,"names":["TesterMain","constructor","patterns","graphql","envs","workspace","service","task","devFiles","builder","test","components","opts","options","getOptions","envsRuntime","createEnvironment","env","runEnv","results","run","junit","generateJUnit","filePath","testsResults","map","envResult","data","flat","jUnit","testsResultsToJUnitFormat","compact","fs","outputFile","watch","onTestRunComplete","forEach","component","_testsResults","componentId","toString","uiWatch","list","debug","ui","getTestsResults","idHasVersion","entry","get","TesterAspect","id","isModified","getDataByAspect","tests","loading","getTestsResultsFromState","getPatterns","name","pattern","getComponentDevPatterns","calculateEnv","componentPatterns","getTestsDevPatterns","getDevPatternToRegister","bind","getTestFiles","detectTestFiles","defaults","merge","provider","cli","loggerAspect","config","logger","createLogger","testerService","TesterService","pubsub","registerService","tester","TesterTask","registerDevPattern","registerOnStart","watchOnStart","undefined","register","TestCmd","testerSchema","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","LoggerAspect","GraphqlAspect","UIAspect","DevFilesAspect","BuilderAspect","addRuntime"],"sources":["tester.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, IComponent } from '@teambit/component';\nimport compact from 'lodash.compact';\nimport { EnvsAspect, EnvsExecutionResult, EnvsMain } from '@teambit/envs';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { UiMain, UIAspect } from '@teambit/ui';\nimport { merge } from 'lodash';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { TestsResult } from '@teambit/tests-results';\nimport { ComponentsResults, CallbackFn, Tests } from './tester';\nimport { TestCmd } from './test.cmd';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterService } from './tester.service';\nimport { TesterTask } from './tester.task';\nimport { detectTestFiles } from './utils';\nimport { testerSchema } from './tester.graphql';\nimport { testsResultsToJUnitFormat } from './utils/junit-generator';\n\nexport type TesterExtensionConfig = {\n /**\n * regex of the text environment.\n */\n testRegex: string;\n\n /**\n * determine whether to watch on start.\n */\n watchOnStart: boolean;\n patterns: string[];\n};\n\nexport type TesterOptions = {\n /**\n * start the tester in watch mode.\n */\n watch: boolean;\n\n /**\n * start the tester in debug mode.\n */\n debug: boolean;\n\n /**\n * start the tester in debug mode.\n */\n ui?: boolean;\n\n /**\n * initiate the tester on given env.\n */\n env?: string;\n\n /**\n * generate JUnit files on the specified dir\n */\n junit?: string;\n\n /**\n * show code coverage\n */\n coverage?: boolean;\n\n callback?: CallbackFn;\n};\n\nexport class TesterMain {\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n DevFilesAspect,\n BuilderAspect,\n ];\n\n constructor(\n private patterns: string[],\n /**\n * graphql extension.\n */\n private graphql: GraphqlMain,\n\n /**\n * envs extension.\n */\n private envs: EnvsMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * tester service.\n */\n readonly service: TesterService,\n\n /**\n * build task.\n */\n readonly task: TesterTask,\n\n private devFiles: DevFilesMain,\n\n private builder: BuilderMain\n ) {}\n\n _testsResults: { [componentId: string]: ComponentsResults } | undefined[] = [];\n\n async test(components: Component[], opts?: TesterOptions): Promise<EnvsExecutionResult<Tests>> {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n const results = await envsRuntime.run(this.service, options);\n if (opts?.junit) {\n await this.generateJUnit(opts?.junit, results);\n }\n return results;\n }\n\n private async generateJUnit(filePath: string, testsResults: EnvsExecutionResult<Tests>) {\n const components = testsResults.results.map((envResult) => envResult.data?.components).flat();\n const jUnit = testsResultsToJUnitFormat(compact(components));\n await fs.outputFile(filePath, jUnit);\n }\n\n /**\n * watch all components for changes and test upon each.\n */\n async watch(components: Component[], opts?: TesterOptions) {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n\n this.service.onTestRunComplete((results) => {\n results.components.forEach((component) => {\n this._testsResults[component.componentId.toString()] = component;\n });\n });\n return envsRuntime.run(this.service, options);\n }\n\n async uiWatch() {\n const components = await this.workspace.list();\n return this.watch(components, { watch: true, debug: false, ui: true });\n }\n\n async getTestsResults(\n component: IComponent,\n idHasVersion = true\n ): Promise<{ testsResults?: TestsResult; loading: boolean } | undefined> {\n const entry = component.get(TesterAspect.id);\n const isModified = !idHasVersion && (await component.isModified());\n const data = this.builder.getDataByAspect(component, TesterAspect.id) as { tests: TestsResult };\n if ((entry || data) && !isModified) {\n return { testsResults: data?.tests || entry?.data.tests, loading: false };\n }\n return this.getTestsResultsFromState(component);\n }\n\n private getTestsResultsFromState(component: IComponent) {\n const tests = this._testsResults[component.id.toString()];\n return { testsResults: tests?.results, loading: tests?.loading || false };\n }\n\n /**\n * Get the tests patterns from the config. (used as default patterns in case the env does not provide them via getTestsDevPatterns)\n * @returns\n */\n getPatterns() {\n return { name: 'tests', pattern: this.patterns };\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentPatterns: string[] = env.getTestsDevPatterns\n ? env.getTestsDevPatterns(component)\n : this.getPatterns();\n return componentPatterns;\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n\n /**\n * get all test files of a component.\n */\n getTestFiles(component: Component) {\n return detectTestFiles(component, this.devFiles);\n }\n\n private getOptions(options?: TesterOptions): TesterOptions {\n const defaults = {\n watch: false,\n debug: false,\n };\n\n return merge(defaults, options);\n }\n\n static defaultConfig = {\n /**\n * default test regex for which files tester to apply on.\n */\n patterns: ['**/*.spec.+(js|ts|jsx|tsx)', '**/*.test.+(js|ts|jsx|tsx)'],\n\n /**\n * determine whether to watch on start.\n */\n watchOnStart: 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":["TesterMain","constructor","patterns","graphql","envs","workspace","service","task","devFiles","builder","test","components","opts","options","getOptions","envsRuntime","createEnvironment","env","runEnv","results","run","junit","generateJUnit","filePath","testsResults","map","envResult","data","flat","jUnit","testsResultsToJUnitFormat","compact","fs","outputFile","watch","onTestRunComplete","forEach","component","_testsResults","componentId","toString","uiWatch","list","debug","ui","getTestsResults","idHasVersion","entry","get","TesterAspect","id","isModified","getDataByAspect","tests","loading","getTestsResultsFromState","getPatterns","getComponentDevPatterns","calculateEnv","componentPatterns","getTestsDevPatterns","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","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","LoggerAspect","GraphqlAspect","UIAspect","DevFilesAspect","BuilderAspect","addRuntime"],"sources":["tester.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, IComponent } from '@teambit/component';\nimport compact from 'lodash.compact';\nimport { EnvsAspect, EnvsExecutionResult, EnvsMain } from '@teambit/envs';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { UiMain, UIAspect } from '@teambit/ui';\nimport { merge } from 'lodash';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { TestsResult } from '@teambit/tests-results';\nimport { ComponentsResults, CallbackFn, Tests } from './tester';\nimport { TestCmd } from './test.cmd';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterService } from './tester.service';\nimport { TesterTask } from './tester.task';\nimport { detectTestFiles } from './utils';\nimport { testerSchema } from './tester.graphql';\nimport { testsResultsToJUnitFormat } from './utils/junit-generator';\n\nexport type TesterExtensionConfig = {\n /**\n * regex of the text environment.\n */\n testRegex: string;\n\n /**\n * determine whether to watch on start.\n */\n watchOnStart: boolean;\n patterns: string[];\n};\n\nexport type TesterOptions = {\n /**\n * start the tester in watch mode.\n */\n watch: boolean;\n\n /**\n * start the tester in debug mode.\n */\n debug: boolean;\n\n /**\n * start the tester in debug mode.\n */\n ui?: boolean;\n\n /**\n * initiate the tester on given env.\n */\n env?: string;\n\n /**\n * generate JUnit files on the specified dir\n */\n junit?: string;\n\n /**\n * show code coverage\n */\n coverage?: boolean;\n\n callback?: CallbackFn;\n};\n\nexport class TesterMain {\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n LoggerAspect,\n GraphqlAspect,\n UIAspect,\n DevFilesAspect,\n BuilderAspect,\n ];\n\n constructor(\n private patterns: string[],\n /**\n * graphql extension.\n */\n private graphql: GraphqlMain,\n\n /**\n * envs extension.\n */\n private envs: EnvsMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * tester service.\n */\n readonly service: TesterService,\n\n /**\n * build task.\n */\n readonly task: TesterTask,\n\n private devFiles: DevFilesMain,\n\n private builder: BuilderMain\n ) {}\n\n _testsResults: { [componentId: string]: ComponentsResults } | undefined[] = [];\n\n async test(components: Component[], opts?: TesterOptions): Promise<EnvsExecutionResult<Tests>> {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n const results = await envsRuntime.run(this.service, options);\n if (opts?.junit) {\n await this.generateJUnit(opts?.junit, results);\n }\n return results;\n }\n\n private async generateJUnit(filePath: string, testsResults: EnvsExecutionResult<Tests>) {\n const components = testsResults.results.map((envResult) => envResult.data?.components).flat();\n const jUnit = testsResultsToJUnitFormat(compact(components));\n await fs.outputFile(filePath, jUnit);\n }\n\n /**\n * watch all components for changes and test upon each.\n */\n async watch(components: Component[], opts?: TesterOptions) {\n const options = this.getOptions(opts);\n const envsRuntime = await this.envs.createEnvironment(components);\n if (opts?.env) {\n return envsRuntime.runEnv(opts.env, this.service, options);\n }\n\n this.service.onTestRunComplete((results) => {\n results.components.forEach((component) => {\n this._testsResults[component.componentId.toString()] = component;\n });\n });\n return envsRuntime.run(this.service, options);\n }\n\n async uiWatch() {\n const components = await this.workspace.list();\n return this.watch(components, { watch: true, debug: false, ui: true });\n }\n\n async getTestsResults(\n component: IComponent,\n idHasVersion = true\n ): Promise<{ testsResults?: TestsResult; loading: boolean } | undefined> {\n const entry = component.get(TesterAspect.id);\n const isModified = !idHasVersion && (await component.isModified());\n const data = this.builder.getDataByAspect(component, TesterAspect.id) as { tests: TestsResult };\n if ((entry || data) && !isModified) {\n return { testsResults: data?.tests || entry?.data.tests, loading: false };\n }\n return this.getTestsResultsFromState(component);\n }\n\n private getTestsResultsFromState(component: IComponent) {\n const tests = this._testsResults[component.id.toString()];\n return { testsResults: tests?.results, loading: tests?.loading || false };\n }\n\n /**\n * Get the tests patterns from the config. (used as default patterns in case the env does not provide them via getTestsDevPatterns)\n * @returns\n */\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentPatterns: string[] = env.getTestsDevPatterns\n ? env.getTestsDevPatterns(component)\n : this.getPatterns();\n return { 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":";;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;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;AACA;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;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;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;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAiDO,MAAMA,UAAU,CAAC;EAatBC,WAAW,CACDC,QAAkB;EAC1B;AACJ;AACA;EACYC,OAAoB;EAE5B;AACJ;AACA;EACYC,IAAc;EAEtB;AACJ;AACA;EACYC,SAAoB;EAE5B;AACJ;AACA;EACaC,OAAsB;EAE/B;AACJ;AACA;EACaC,IAAgB,EAEjBC,QAAsB,EAEtBC,OAAoB,EAC5B;IAAA,KA7BQP,QAAkB,GAAlBA,QAAkB;IAAA,KAIlBC,OAAoB,GAApBA,OAAoB;IAAA,KAKpBC,IAAc,GAAdA,IAAc;IAAA,KAKdC,SAAoB,GAApBA,SAAoB;IAAA,KAKnBC,OAAsB,GAAtBA,OAAsB;IAAA,KAKtBC,IAAgB,GAAhBA,IAAgB;IAAA,KAEjBC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,OAAoB,GAApBA,OAAoB;IAAA,uDAG8C,EAAE;EAF3E;EAIH,MAAMC,IAAI,CAACC,UAAuB,EAAEC,IAAoB,EAAuC;IAC7F,MAAMC,OAAO,GAAG,IAAI,CAACC,UAAU,CAACF,IAAI,CAAC;IACrC,MAAMG,WAAW,GAAG,MAAM,IAAI,CAACX,IAAI,CAACY,iBAAiB,CAACL,UAAU,CAAC;IACjE,IAAIC,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEK,GAAG,EAAE;MACb,OAAOF,WAAW,CAACG,MAAM,CAACN,IAAI,CAACK,GAAG,EAAE,IAAI,CAACX,OAAO,EAAEO,OAAO,CAAC;IAC5D;IACA,MAAMM,OAAO,GAAG,MAAMJ,WAAW,CAACK,GAAG,CAAC,IAAI,CAACd,OAAO,EAAEO,OAAO,CAAC;IAC5D,IAAID,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAES,KAAK,EAAE;MACf,MAAM,IAAI,CAACC,aAAa,CAACV,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAES,KAAK,EAAEF,OAAO,CAAC;IAChD;IACA,OAAOA,OAAO;EAChB;EAEA,MAAcG,aAAa,CAACC,QAAgB,EAAEC,YAAwC,EAAE;IACtF,MAAMb,UAAU,GAAGa,YAAY,CAACL,OAAO,CAACM,GAAG,CAAEC,SAAS;MAAA;MAAA,0BAAKA,SAAS,CAACC,IAAI,oDAAd,gBAAgBhB,UAAU;IAAA,EAAC,CAACiB,IAAI,EAAE;IAC7F,MAAMC,KAAK,GAAG,IAAAC,2CAAyB,EAAC,IAAAC,iBAAO,EAACpB,UAAU,CAAC,CAAC;IAC5D,MAAMqB,kBAAE,CAACC,UAAU,CAACV,QAAQ,EAAEM,KAAK,CAAC;EACtC;;EAEA;AACF;AACA;EACE,MAAMK,KAAK,CAACvB,UAAuB,EAAEC,IAAoB,EAAE;IACzD,MAAMC,OAAO,GAAG,IAAI,CAACC,UAAU,CAACF,IAAI,CAAC;IACrC,MAAMG,WAAW,GAAG,MAAM,IAAI,CAACX,IAAI,CAACY,iBAAiB,CAACL,UAAU,CAAC;IACjE,IAAIC,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEK,GAAG,EAAE;MACb,OAAOF,WAAW,CAACG,MAAM,CAACN,IAAI,CAACK,GAAG,EAAE,IAAI,CAACX,OAAO,EAAEO,OAAO,CAAC;IAC5D;IAEA,IAAI,CAACP,OAAO,CAAC6B,iBAAiB,CAAEhB,OAAO,IAAK;MAC1CA,OAAO,CAACR,UAAU,CAACyB,OAAO,CAAEC,SAAS,IAAK;QACxC,IAAI,CAACC,aAAa,CAACD,SAAS,CAACE,WAAW,CAACC,QAAQ,EAAE,CAAC,GAAGH,SAAS;MAClE,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAOtB,WAAW,CAACK,GAAG,CAAC,IAAI,CAACd,OAAO,EAAEO,OAAO,CAAC;EAC/C;EAEA,MAAM4B,OAAO,GAAG;IACd,MAAM9B,UAAU,GAAG,MAAM,IAAI,CAACN,SAAS,CAACqC,IAAI,EAAE;IAC9C,OAAO,IAAI,CAACR,KAAK,CAACvB,UAAU,EAAE;MAAEuB,KAAK,EAAE,IAAI;MAAES,KAAK,EAAE,KAAK;MAAEC,EAAE,EAAE;IAAK,CAAC,CAAC;EACxE;EAEA,MAAMC,eAAe,CACnBR,SAAqB,EACrBS,YAAY,GAAG,IAAI,EACoD;IACvE,MAAMC,KAAK,GAAGV,SAAS,CAACW,GAAG,CAACC,sBAAY,CAACC,EAAE,CAAC;IAC5C,MAAMC,UAAU,GAAG,CAACL,YAAY,KAAK,MAAMT,SAAS,CAACc,UAAU,EAAE,CAAC;IAClE,MAAMxB,IAAI,GAAG,IAAI,CAAClB,OAAO,CAAC2C,eAAe,CAACf,SAAS,EAAEY,sBAAY,CAACC,EAAE,CAA2B;IAC/F,IAAI,CAACH,KAAK,IAAIpB,IAAI,KAAK,CAACwB,UAAU,EAAE;MAClC,OAAO;QAAE3B,YAAY,EAAE,CAAAG,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE0B,KAAK,MAAIN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEpB,IAAI,CAAC0B,KAAK;QAAEC,OAAO,EAAE;MAAM,CAAC;IAC3E;IACA,OAAO,IAAI,CAACC,wBAAwB,CAAClB,SAAS,CAAC;EACjD;EAEQkB,wBAAwB,CAAClB,SAAqB,EAAE;IACtD,MAAMgB,KAAK,GAAG,IAAI,CAACf,aAAa,CAACD,SAAS,CAACa,EAAE,CAACV,QAAQ,EAAE,CAAC;IACzD,OAAO;MAAEhB,YAAY,EAAE6B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAElC,OAAO;MAAEmC,OAAO,EAAE,CAAAD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,OAAO,KAAI;IAAM,CAAC;EAC3E;;EAEA;AACF;AACA;AACA;EACEE,WAAW,GAAG;IACZ,OAAO,IAAI,CAACtD,QAAQ;EACtB;EAEAuD,uBAAuB,CAACpB,SAAoB,EAAE;IAC5C,MAAMpB,GAAG,GAAG,IAAI,CAACb,IAAI,CAACsD,YAAY,CAACrB,SAAS,CAAC,CAACpB,GAAG;IACjD,MAAM0C,iBAA2B,GAAG1C,GAAG,CAAC2C,mBAAmB,GACvD3C,GAAG,CAAC2C,mBAAmB,CAACvB,SAAS,CAAC,GAClC,IAAI,CAACmB,WAAW,EAAE;IACtB,OAAO;MAAEK,IAAI,EAAE,OAAO;MAAEC,OAAO,EAAEH;IAAkB,CAAC;EACtD;EAEAI,uBAAuB,GAAG;IACxB,OAAO,IAAI,CAACN,uBAAuB,CAACO,IAAI,CAAC,IAAI,CAAC;EAChD;;EAEA;AACF;AACA;EACEC,YAAY,CAAC5B,SAAoB,EAAE;IACjC,OAAO,IAAA6B,wBAAe,EAAC7B,SAAS,EAAE,IAAI,CAAC7B,QAAQ,CAAC;EAClD;EAEQM,UAAU,CAACD,OAAuB,EAAiB;IACzD,MAAMsD,QAAQ,GAAG;MACfjC,KAAK,EAAE,KAAK;MACZS,KAAK,EAAE;IACT,CAAC;IAED,OAAO,IAAAyB,gBAAK,EAACD,QAAQ,EAAEtD,OAAO,CAAC;EACjC;EAcA,aAAawD,QAAQ,CACnB,CAACC,GAAG,EAAElE,IAAI,EAAEC,SAAS,EAAEkE,YAAY,EAAEpE,OAAO,EAAEyC,EAAE,EAAEpC,QAAQ,EAAEC,OAAO,CASlE,EACD+D,MAA6B,EAC7B;IACA,MAAMC,MAAM,GAAGF,YAAY,CAACG,YAAY,CAACzB,sBAAY,CAACC,EAAE,CAAC;IACzD,MAAMyB,aAAa,GAAG,KAAIC,wBAAa,EAACvE,SAAS,EAAEoE,MAAM,EAAEtE,OAAO,CAAC0E,MAAM,EAAErE,QAAQ,CAAC;IACpFJ,IAAI,CAAC0E,eAAe,CAACH,aAAa,CAAC;IACnC,MAAMI,MAAM,GAAG,IAAI/E,UAAU,CAC3BwE,MAAM,CAACtE,QAAQ,EACfC,OAAO,EACPC,IAAI,EACJC,SAAS,EACTsE,aAAa,EACb,KAAIK,qBAAU,EAAC/B,sBAAY,CAACC,EAAE,EAAE1C,QAAQ,CAAC,EACzCA,QAAQ,EACRC,OAAO,CACR;IACDD,QAAQ,CAACyE,kBAAkB,CAACF,MAAM,CAAChB,uBAAuB,EAAE,CAAC;IAE7D,IAAI1D,SAAS,EAAE;MACbuC,EAAE,CAACsC,eAAe,CAAC,YAAY;QAC7B,IAAI,CAACV,MAAM,CAACW,YAAY,EAAE,OAAOC,SAAS;QAC1C,MAAML,MAAM,CAACtC,OAAO,EAAE;QACtB,OAAO2C,SAAS;MAClB,CAAC,CAAC;IACJ;IACAd,GAAG,CAACe,QAAQ,CAAC,KAAIC,eAAO,EAACP,MAAM,EAAE1E,SAAS,EAAEoE,MAAM,CAAC,CAAC;IAEpDtE,OAAO,CAACkF,QAAQ,CAAC,IAAAE,uBAAY,EAACR,MAAM,EAAE5E,OAAO,CAAC,CAAC;IAE/C,OAAO4E,MAAM;EACf;AACF;AAAC;AAAA,gCApMY/E,UAAU,aACJwF,kBAAW;AAAA,gCADjBxF,UAAU,kBAEC,CACpByF,gBAAS,EACTC,kBAAU,EACVC,4BAAe,EACfC,sBAAY,EACZC,wBAAa,EACbC,cAAQ,EACRC,mBAAc,EACdC,wBAAa,CACd;AAAA,gCAXUhG,UAAU,mBA+IE;EACrB;AACJ;AACA;EACIE,QAAQ,EAAE,CAAC,4BAA4B,EAAE,4BAA4B,CAAC;EAEtE;AACJ;AACA;EACIiF,YAAY,EAAE;AAChB,CAAC;AA6CHlC,sBAAY,CAACgD,UAAU,CAACjG,UAAU,CAAC"}
@@ -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","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","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, 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 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
+ {"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","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","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, 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 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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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/tester",
3
- "version": "0.0.1064",
3
+ "version": "0.0.1066",
4
4
  "homepage": "https://bit.cloud/teambit/defender/tester",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.defender",
8
8
  "name": "tester",
9
- "version": "0.0.1064"
9
+ "version": "0.0.1066"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -22,20 +22,20 @@
22
22
  "core-js": "^3.0.0",
23
23
  "@babel/runtime": "7.20.0",
24
24
  "@teambit/harmony": "0.4.6",
25
- "@teambit/cli": "0.0.717",
26
- "@teambit/logger": "0.0.810",
27
- "@teambit/workspace": "0.0.1064",
28
- "@teambit/envs": "0.0.1064",
29
- "@teambit/component": "0.0.1064",
30
- "@teambit/graphql": "0.0.1064",
31
- "@teambit/builder": "0.0.1064",
32
- "@teambit/dev-files": "0.0.1064",
25
+ "@teambit/cli": "0.0.719",
26
+ "@teambit/logger": "0.0.812",
27
+ "@teambit/workspace": "0.0.1066",
28
+ "@teambit/envs": "0.0.1066",
29
+ "@teambit/component": "0.0.1066",
30
+ "@teambit/graphql": "0.0.1066",
31
+ "@teambit/builder": "0.0.1066",
32
+ "@teambit/dev-files": "0.0.1066",
33
33
  "@teambit/tests-results": "0.0.104",
34
- "@teambit/ui": "0.0.1064",
35
- "@teambit/compiler": "0.0.1064",
36
- "@teambit/component-compare": "0.0.312",
37
- "@teambit/defender.ui.test-compare-section": "0.0.24",
38
- "@teambit/defender.ui.test-compare": "0.0.177",
34
+ "@teambit/ui": "0.0.1066",
35
+ "@teambit/compiler": "0.0.1066",
36
+ "@teambit/component-compare": "0.0.314",
37
+ "@teambit/defender.ui.test-compare-section": "0.0.26",
38
+ "@teambit/defender.ui.test-compare": "0.0.179",
39
39
  "@teambit/defender.ui.test-page": "0.0.18",
40
40
  "@teambit/bit-error": "0.0.402"
41
41
  },
@@ -52,7 +52,7 @@
52
52
  "@teambit/defender.content.tester-overview": "1.95.0"
53
53
  },
54
54
  "peerDependencies": {
55
- "@teambit/legacy": "1.0.497",
55
+ "@teambit/legacy": "1.0.499",
56
56
  "react": "^16.8.0 || ^17.0.0",
57
57
  "react-dom": "^16.8.0 || ^17.0.0"
58
58
  },