@teambit/tester 0.0.649 → 0.0.653
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/{__preview-1644981953366.js → __preview-1645393132004.js} +0 -0
- package/dist/tester.service.js +7 -1
- package/dist/tester.service.js.map +1 -1
- package/dist/tester.task.js +14 -2
- package/dist/tester.task.js.map +1 -1
- package/package-tar/teambit-tester-0.0.653.tgz +0 -0
- package/package.json +19 -19
- package/tester.service.tsx +7 -1
- package/package-tar/teambit-tester-0.0.649.tgz +0 -0
|
File without changes
|
package/dist/tester.service.js
CHANGED
|
@@ -153,6 +153,8 @@ class TesterService {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
async run(context, options) {
|
|
156
|
+
var _results$errors;
|
|
157
|
+
|
|
156
158
|
const tester = context.env.getTester();
|
|
157
159
|
|
|
158
160
|
const specFiles = _component().ComponentMap.as(context.components, component => {
|
|
@@ -209,7 +211,11 @@ class TesterService {
|
|
|
209
211
|
return tester.watch(testerContext);
|
|
210
212
|
}
|
|
211
213
|
|
|
212
|
-
|
|
214
|
+
const results = await tester.test(testerContext);
|
|
215
|
+
(_results$errors = results.errors) === null || _results$errors === void 0 ? void 0 : _results$errors.forEach(error => {
|
|
216
|
+
this.logger.console(error === null || error === void 0 ? void 0 : error.message);
|
|
217
|
+
});
|
|
218
|
+
return results;
|
|
213
219
|
}
|
|
214
220
|
|
|
215
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tester.service.tsx"],"names":["chalk","require","OnTestsChanged","TesterService","constructor","workspace","patterns","logger","pubsub","devFiles","render","env","descriptor","getDescriptor","id","displayName","version","config","language","ignoreIllegals","environment","getTester","undefined","tester","icon","displayConfig","onTestRunComplete","callback","_callback","run","context","options","specFiles","ComponentMap","as","components","component","testCount","toArray","reduce","acc","specs","length","componentWithTests","ui","NoTestFilesFound","join","console","cyan","dir","componentDir","componentPatterns","getDevPatterns","TesterAspect","map","pattern","path","relative","testerContext","Object","assign","release","rootPath","debug","watch","coverage","results","forEach","publish","testsChanged","componentId","toString","testsResults","loading","test"],"mappings":"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","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';\nimport { NoTestFilesFound } from './exceptions';\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 * regex used to identify which files to test.\n */\n readonly patterns: string[],\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) throw new NoTestFilesFound(this.patterns.join(','));\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 dir = this.workspace.componentDir(component.id);\n const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);\n return componentPatterns.map((pattern: string) => ({ path: resolve(dir, pattern), relative: pattern }));\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 });\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 return tester.test(testerContext);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["tester.service.tsx"],"names":["chalk","require","OnTestsChanged","TesterService","constructor","workspace","patterns","logger","pubsub","devFiles","render","env","descriptor","getDescriptor","id","displayName","version","config","language","ignoreIllegals","environment","getTester","undefined","tester","icon","displayConfig","onTestRunComplete","callback","_callback","run","context","options","specFiles","ComponentMap","as","components","component","testCount","toArray","reduce","acc","specs","length","componentWithTests","ui","NoTestFilesFound","join","console","cyan","dir","componentDir","componentPatterns","getDevPatterns","TesterAspect","map","pattern","path","relative","testerContext","Object","assign","release","rootPath","debug","watch","coverage","results","forEach","publish","testsChanged","componentId","toString","testsResults","loading","test","errors","error","message"],"mappings":"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","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';\nimport { NoTestFilesFound } from './exceptions';\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 * regex used to identify which files to test.\n */\n readonly patterns: string[],\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) throw new NoTestFilesFound(this.patterns.join(','));\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 dir = this.workspace.componentDir(component.id);\n const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);\n return componentPatterns.map((pattern: string) => ({ path: resolve(dir, pattern), relative: pattern }));\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 });\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 results.errors?.forEach((error) => {\n this.logger.console(error?.message);\n });\n\n return results;\n }\n}\n"]}
|
package/dist/tester.task.js
CHANGED
|
@@ -53,6 +53,16 @@ function _path() {
|
|
|
53
53
|
return data;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
function _lodash() {
|
|
57
|
+
const data = require("lodash");
|
|
58
|
+
|
|
59
|
+
_lodash = function () {
|
|
60
|
+
return data;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
return data;
|
|
64
|
+
}
|
|
65
|
+
|
|
56
66
|
function _compiler() {
|
|
57
67
|
const data = require("@teambit/compiler");
|
|
58
68
|
|
|
@@ -142,7 +152,8 @@ class TesterTask {
|
|
|
142
152
|
}); // TODO: remove after fix AbstractVinyl on capsule
|
|
143
153
|
// @ts-ignore
|
|
144
154
|
|
|
145
|
-
const testsResults = await tester.test(testerContext);
|
|
155
|
+
const testsResults = await tester.test(testerContext);
|
|
156
|
+
const generalErrorsMessages = (0, _lodash().flatten)(testsResults.errors).map(err => err.message) || []; // write junit files
|
|
146
157
|
|
|
147
158
|
await Promise.all(testsResults.components.map(async compResult => {
|
|
148
159
|
const junit = (0, _junitGenerator().testsResultsToJUnitFormat)([compResult]);
|
|
@@ -179,12 +190,13 @@ class TesterTask {
|
|
|
179
190
|
throw new Error(`unable to find ${componentTests.componentId.toString()} in capsules`);
|
|
180
191
|
}
|
|
181
192
|
|
|
193
|
+
const errors = (componentErrors || []).concat(generalErrorsMessages);
|
|
182
194
|
return {
|
|
183
195
|
component,
|
|
184
196
|
metadata: {
|
|
185
197
|
tests: componentTests.results
|
|
186
198
|
},
|
|
187
|
-
errors
|
|
199
|
+
errors
|
|
188
200
|
};
|
|
189
201
|
})
|
|
190
202
|
};
|
package/dist/tester.task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tester.task.ts"],"names":["TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","tester","env","getTester","componentsSpecFiles","ComponentMap","as","components","component","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","specFilesWithCapsule","componentSpecFiles","get","Error","map","specFile","capsule","capsuleNetwork","graphCapsules","getCapsule","compiler","getCompiler","distPath","getDistPathBySrcPath","relative","path","testerContext","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","componentId","toString","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","results","testFiles","
|
|
1
|
+
{"version":3,"sources":["tester.task.ts"],"names":["TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","tester","env","getTester","componentsSpecFiles","ComponentMap","as","components","component","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","specFilesWithCapsule","componentSpecFiles","get","Error","map","specFile","capsule","capsuleNetwork","graphCapsules","getCapsule","compiler","getCompiler","distPath","getDistPathBySrcPath","relative","path","testerContext","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","generalErrorsMessages","errors","err","message","Promise","all","compResult","junit","componentId","toString","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","results","testFiles","file","error","failureMessage","push","tests","forEach","failure","concat","metadata","CAPSULE_ARTIFACTS_DIR","name","globPatterns","rootDir"],"mappings":"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","sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport fs from 'fs-extra';\nimport { join } from 'path';\nimport { flatten } from 'lodash';\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 tester: Tester = context.env.getTester();\n const componentsSpecFiles = ComponentMap.as(context.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 specFilesWithCapsule = ComponentMap.as(context.components, (component) => {\n const componentSpecFiles = componentsSpecFiles.get(component);\n if (!componentSpecFiles) throw new Error('capsule not found');\n const [, specs] = componentSpecFiles;\n return specs.map((specFile) => {\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 const distPath = compiler.getDistPathBySrcPath(specFile.relative);\n\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 const testerContext = Object.assign(context, {\n release: true,\n specFiles: specFilesWithCapsule,\n rootPath: context.capsuleNetwork.capsulesRootDir,\n patterns: specFilesWithCapsule,\n });\n\n // TODO: remove after fix AbstractVinyl on capsule\n // @ts-ignore\n const testsResults = await tester.test(testerContext);\n const generalErrorsMessages = flatten(testsResults.errors).map((err) => err.message) || [];\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.results?.testFiles.reduce((errors: string[], file) => {\n if (file?.error?.failureMessage) {\n errors.push(file.error.failureMessage);\n }\n file.tests.forEach((test) => {\n if (test.error) errors.push(test.error);\n if (test.failure) errors.push(test.failure);\n });\n\n return errors;\n }, []);\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 const errors = (componentErrors || []).concat(generalErrorsMessages);\n\n return {\n component,\n metadata: { tests: componentTests.results },\n errors,\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"]}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/tester",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.653",
|
|
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.
|
|
9
|
+
"version": "0.0.653"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -24,24 +24,24 @@
|
|
|
24
24
|
"@babel/runtime": "7.12.18",
|
|
25
25
|
"core-js": "^3.0.0",
|
|
26
26
|
"@teambit/documenter.ui.heading": "4.1.1",
|
|
27
|
-
"@teambit/cli": "0.0.
|
|
28
|
-
"@teambit/logger": "0.0.
|
|
29
|
-
"@teambit/workspace": "0.0.
|
|
30
|
-
"@teambit/component": "0.0.
|
|
31
|
-
"@teambit/graphql": "0.0.
|
|
32
|
-
"@teambit/builder": "0.0.
|
|
33
|
-
"@teambit/dev-files": "0.0.
|
|
34
|
-
"@teambit/envs": "0.0.
|
|
27
|
+
"@teambit/cli": "0.0.445",
|
|
28
|
+
"@teambit/logger": "0.0.535",
|
|
29
|
+
"@teambit/workspace": "0.0.653",
|
|
30
|
+
"@teambit/component": "0.0.653",
|
|
31
|
+
"@teambit/graphql": "0.0.653",
|
|
32
|
+
"@teambit/builder": "0.0.653",
|
|
33
|
+
"@teambit/dev-files": "0.0.653",
|
|
34
|
+
"@teambit/envs": "0.0.653",
|
|
35
35
|
"@teambit/tests-results": "0.0.95",
|
|
36
|
-
"@teambit/ui": "0.0.
|
|
37
|
-
"@teambit/compiler": "0.0.
|
|
36
|
+
"@teambit/ui": "0.0.653",
|
|
37
|
+
"@teambit/compiler": "0.0.653",
|
|
38
38
|
"@teambit/bit-error": "0.0.394",
|
|
39
|
-
"@teambit/defender.ui.test-loader": "0.0.
|
|
40
|
-
"@teambit/defender.ui.test-table": "0.0.
|
|
39
|
+
"@teambit/defender.ui.test-loader": "0.0.490",
|
|
40
|
+
"@teambit/defender.ui.test-table": "0.0.493",
|
|
41
41
|
"@teambit/design.ui.alert-card": "0.0.14",
|
|
42
42
|
"@teambit/design.ui.empty-box": "0.0.353",
|
|
43
43
|
"@teambit/design.ui.separator": "0.0.351",
|
|
44
|
-
"@teambit/mdx.ui.mdx-layout": "0.0.
|
|
44
|
+
"@teambit/mdx.ui.mdx-layout": "0.0.494"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/react": "^17.0.8",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@types/lodash.compact": "3.0.6",
|
|
50
50
|
"@types/lodash": "4.14.165",
|
|
51
51
|
"@types/classnames": "2.2.11",
|
|
52
|
-
"@types/mocha": "
|
|
52
|
+
"@types/mocha": "9.1.0",
|
|
53
53
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
54
54
|
"@types/jest": "^26.0.0",
|
|
55
55
|
"@types/react-dom": "^17.0.5",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"@apollo/client": "^3.0.0",
|
|
60
|
-
"@teambit/legacy": "1.0.
|
|
60
|
+
"@teambit/legacy": "1.0.223",
|
|
61
61
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
62
62
|
"react": "^16.8.0 || ^17.0.0"
|
|
63
63
|
},
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@teambit/legacy": "-",
|
|
78
|
-
"@types/mocha": "
|
|
78
|
+
"@types/mocha": "9.1.0",
|
|
79
79
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
80
80
|
"@types/jest": "^26.0.0",
|
|
81
81
|
"@types/react-dom": "^17.0.5",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"react": "-"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
|
-
"@teambit/legacy": "1.0.
|
|
88
|
+
"@teambit/legacy": "1.0.223",
|
|
89
89
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
90
90
|
"react": "^16.8.0 || ^17.0.0"
|
|
91
91
|
}
|
package/tester.service.tsx
CHANGED
|
@@ -156,6 +156,12 @@ export class TesterService implements EnvService<Tests, TesterDescriptor> {
|
|
|
156
156
|
return tester.watch(testerContext);
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
const results = await tester.test(testerContext);
|
|
160
|
+
|
|
161
|
+
results.errors?.forEach((error) => {
|
|
162
|
+
this.logger.console(error?.message);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
return results;
|
|
160
166
|
}
|
|
161
167
|
}
|
|
Binary file
|