@teambit/jest 0.0.663 → 0.0.666

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 +1 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_jest@0.0.663/dist/jest.composition.js')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_jest@0.0.666/dist/jest.composition.js')]
@@ -2,12 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- require("core-js/modules/es.array.flat.js");
6
-
7
5
  require("core-js/modules/es.array.iterator.js");
8
6
 
9
- require("core-js/modules/es.array.unscopables.flat.js");
10
-
11
7
  require("core-js/modules/es.promise.js");
12
8
 
13
9
  Object.defineProperty(exports, "__esModule", {
@@ -65,6 +61,16 @@ function _comlink() {
65
61
  return data;
66
62
  }
67
63
 
64
+ function _tester() {
65
+ const data = require("@teambit/tester");
66
+
67
+ _tester = function () {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
73
+
68
74
  function _testsResults() {
69
75
  const data = require("@teambit/tests-results");
70
76
 
@@ -253,11 +259,7 @@ class JestTester {
253
259
  const testResults = testsOutPut.results.testResults;
254
260
  const componentsWithTests = this.attachTestsToComponent(context, testResults);
255
261
  const componentTestResults = this.buildTestsObj(testsOutPut.results, componentsWithTests, context, jestConfigWithSpecs);
256
- const allErrors = componentTestResults.map(comp => comp.errors || []).flat();
257
- return {
258
- components: componentTestResults,
259
- errors: allErrors
260
- };
262
+ return new (_tester().Tests)(componentTestResults);
261
263
  }
262
264
 
263
265
  async watch(context) {
@@ -1 +1 @@
1
- {"version":3,"sources":["jest.tester.ts"],"names":["JestTester","constructor","id","jestConfig","jestModulePath","jestWorker","logger","jestModule","require","displayConfig","version","getVersion","attachTestsToComponent","testerContext","testResult","ComponentMap","as","components","component","componentSpecFiles","patterns","get","undefined","specs","filter","test","pattern","testFilePath","path","length","buildTestsObj","aggregatedResult","config","testsSuiteResult","toArray","map","testsFiles","errors","getErrors","tests","file","AbstractVinyl","contents","testResults","error","noStackTrace","isFailure","status","TestResult","ancestorTitles","title","duration","filePath","basename","getError","testExecError","watch","JestError","failureMessage","message","stack","TestsFiles","numPassingTests","numFailingTests","numPendingTests","perfStats","runtime","slow","componentId","results","TestsResult","success","startTime","reduce","code","type","push","onTestRunComplete","callback","_callback","context","rootDir","rootPath","console","warn","debug","runInBand","coverage","watchAll","noCache","jestConfigWithSpecs","Object","assign","testMatch","patternsToArray","withEnv","testsOutPut","runCLI","componentsWithTests","componentTestResults","allErrors","comp","flat","Promise","resolve","workerApi","initiate","ui","stdout","stderr","stdin","cbFn","globalErrors","watchTestResults","loading","onTestComplete","err","p"],"mappings":"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","sourcesContent":["import { readFileSync } from 'fs-extra';\nimport minimatch from 'minimatch';\nimport { compact, flatten } from 'lodash';\nimport { proxy } from 'comlink';\nimport { Logger } from '@teambit/logger';\nimport { HarmonyWorker } from '@teambit/worker';\nimport { Tester, CallbackFn, TesterContext, Tests, ComponentPatternsMap, ComponentsResults } from '@teambit/tester';\nimport { TestsFiles, TestResult, TestsResult } from '@teambit/tests-results';\nimport { TestResult as JestTestResult, AggregatedResult } from '@jest/test-result';\nimport { formatResultsErrors } from 'jest-message-util';\nimport { ComponentMap } from '@teambit/component';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport type jest from 'jest';\nimport { JestError } from './error';\nimport type { JestWorker } from './jest.worker';\n\nexport class JestTester implements Tester {\n private readonly jestModule: typeof jest;\n\n constructor(\n readonly id: string,\n readonly jestConfig: any,\n private jestModulePath: string,\n private jestWorker: HarmonyWorker<JestWorker>,\n private logger: Logger\n ) {\n // eslint-disable-next-line global-require,import/no-dynamic-require\n this.jestModule = require(jestModulePath);\n }\n\n configPath = this.jestConfig;\n\n displayName = 'Jest';\n\n _callback: CallbackFn | undefined;\n\n displayConfig() {\n return readFileSync(this.jestConfig, 'utf8');\n }\n\n version() {\n return this.jestModule.getVersion();\n }\n\n // private getTestFile(path: string, testerContext: TesterContext): AbstractVinyl | undefined {\n // return testerContext.specFiles.toArray().reduce((acc: AbstractVinyl | undefined, [, specs]) => {\n // const file = specs.find((spec) => spec.path === path);\n // if (file) acc = file;\n // return acc;\n // }, undefined);\n // }\n\n private attachTestsToComponent(testerContext: TesterContext, testResult: JestTestResult[]) {\n return ComponentMap.as(testerContext.components, (component) => {\n const componentSpecFiles = testerContext.patterns.get(component);\n if (!componentSpecFiles) return undefined;\n const [, specs] = componentSpecFiles;\n return testResult.filter((test) => {\n return specs.filter((pattern) => minimatch(test.testFilePath, pattern.path)).length > 0;\n });\n });\n }\n\n private buildTestsObj(\n aggregatedResult: AggregatedResult,\n components: ComponentMap<JestTestResult[] | undefined>,\n testerContext: TesterContext,\n config?: any\n ): ComponentsResults[] {\n const testsSuiteResult = components.toArray().map(([component, testsFiles]) => {\n if (!testsFiles) return undefined;\n if (testsFiles?.length === 0) return undefined;\n const errors = this.getErrors(testsFiles);\n const tests = testsFiles.map((test) => {\n const file = new AbstractVinyl({ path: test.testFilePath, contents: readFileSync(test.testFilePath) });\n const testResults = test.testResults.map((testResult) => {\n const error = formatResultsErrors([testResult], config, { noStackTrace: true }) || undefined;\n const isFailure = testResult.status === 'failed';\n return new TestResult(\n testResult.ancestorTitles,\n testResult.title,\n testResult.status,\n testResult.duration,\n isFailure ? undefined : error,\n isFailure ? error : undefined\n );\n });\n const filePath = file?.basename || test.testFilePath;\n const getError = () => {\n if (!test.testExecError) return undefined;\n if (testerContext.watch) {\n // for some reason, during watch ('bit start'), if a file has an error, the `test.testExecError` is `{}`\n // (an empty object). the failureMessage contains the stringified error.\n // @todo: consider to always use the failureMessage, regardless the context.watch.\n return new JestError(test.failureMessage as string);\n }\n return new JestError(test.testExecError?.message, test.testExecError?.stack);\n };\n const error = getError();\n return new TestsFiles(\n filePath,\n testResults,\n test.numPassingTests,\n test.numFailingTests,\n test.numPendingTests,\n test.perfStats.runtime,\n test.perfStats.slow,\n error\n );\n });\n return {\n componentId: component.id,\n results: new TestsResult(tests, aggregatedResult.success, aggregatedResult.startTime),\n errors,\n };\n });\n\n return compact(testsSuiteResult);\n }\n\n private getErrors(testResult: JestTestResult[]): JestError[] {\n return testResult.reduce((errors: JestError[], test) => {\n if (test.testExecError) {\n const { message, stack, code, type } = test.testExecError;\n errors.push(new JestError(message, stack, code, type));\n } else if (test.failureMessage) {\n errors.push(new JestError(test.failureMessage));\n }\n return errors;\n }, []);\n }\n\n async onTestRunComplete(callback: CallbackFn) {\n this._callback = callback;\n }\n\n async test(context: TesterContext): Promise<Tests> {\n const config: any = {\n rootDir: context.rootPath,\n };\n\n // eslint-disable-next-line no-console\n console.warn = (message: string) => {\n this.logger.warn(message);\n };\n\n if (context.debug) config.runInBand = true;\n if (context.coverage) config.coverage = true;\n config.runInBand = true;\n\n if (context.watch) {\n config.watchAll = true;\n config.noCache = true;\n }\n // eslint-disable-next-line global-require,import/no-dynamic-require\n const jestConfig = require(this.jestConfig);\n\n const jestConfigWithSpecs = Object.assign(jestConfig, {\n testMatch: this.patternsToArray(context.patterns),\n });\n\n const withEnv = Object.assign(jestConfigWithSpecs, config);\n const testsOutPut = await this.jestModule.runCLI(withEnv, [this.jestConfig]);\n const testResults = testsOutPut.results.testResults;\n const componentsWithTests = this.attachTestsToComponent(context, testResults);\n const componentTestResults = this.buildTestsObj(\n testsOutPut.results,\n componentsWithTests,\n context,\n jestConfigWithSpecs\n );\n const allErrors = componentTestResults.map((comp) => comp.errors || []).flat();\n return { components: componentTestResults, errors: allErrors };\n }\n\n async watch(context: TesterContext): Promise<Tests> {\n // eslint-disable-next-line\n return new Promise(async (resolve) => {\n const workerApi = this.jestWorker.initiate(\n context.ui ? { stdout: true, stderr: true, stdin: true } : { stdout: false, stderr: false, stdin: false }\n );\n\n // eslint-disable-next-line\n const jestConfig = require(this.jestConfig);\n\n const jestConfigWithSpecs = Object.assign(jestConfig, {\n testMatch: this.patternsToArray(context.patterns),\n });\n\n try {\n const cbFn = proxy((results) => {\n if (!this._callback) return;\n const testResults = results.testResults;\n const componentsWithTests = this.attachTestsToComponent(context, testResults);\n const componentTestResults = this.buildTestsObj(results, componentsWithTests, context, jestConfigWithSpecs);\n const globalErrors = this.getErrors(testResults);\n const watchTestResults = {\n loading: false,\n errors: globalErrors,\n components: componentTestResults,\n };\n this._callback(watchTestResults);\n resolve(watchTestResults);\n });\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n await workerApi.onTestComplete(cbFn);\n\n await workerApi.watch(\n this.jestConfig,\n this.patternsToArray(context.patterns),\n context.rootPath,\n this.jestModulePath\n );\n } catch (err: any) {\n this.logger.error('jest.tester.watch() caught an error', err);\n }\n });\n }\n\n private patternsToArray(patterns: ComponentPatternsMap) {\n return flatten(patterns.toArray().map(([, pattern]) => pattern.map((p) => p.path)));\n }\n}\n"]}
1
+ {"version":3,"sources":["jest.tester.ts"],"names":["JestTester","constructor","id","jestConfig","jestModulePath","jestWorker","logger","jestModule","require","displayConfig","version","getVersion","attachTestsToComponent","testerContext","testResult","ComponentMap","as","components","component","componentSpecFiles","patterns","get","undefined","specs","filter","test","pattern","testFilePath","path","length","buildTestsObj","aggregatedResult","config","testsSuiteResult","toArray","map","testsFiles","errors","getErrors","tests","file","AbstractVinyl","contents","testResults","error","noStackTrace","isFailure","status","TestResult","ancestorTitles","title","duration","filePath","basename","getError","testExecError","watch","JestError","failureMessage","message","stack","TestsFiles","numPassingTests","numFailingTests","numPendingTests","perfStats","runtime","slow","componentId","results","TestsResult","success","startTime","reduce","code","type","push","onTestRunComplete","callback","_callback","context","rootDir","rootPath","console","warn","debug","runInBand","coverage","watchAll","noCache","jestConfigWithSpecs","Object","assign","testMatch","patternsToArray","withEnv","testsOutPut","runCLI","componentsWithTests","componentTestResults","Tests","Promise","resolve","workerApi","initiate","ui","stdout","stderr","stdin","cbFn","globalErrors","watchTestResults","loading","onTestComplete","err","p"],"mappings":"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","sourcesContent":["import { readFileSync } from 'fs-extra';\nimport minimatch from 'minimatch';\nimport { compact, flatten } from 'lodash';\nimport { proxy } from 'comlink';\nimport { Logger } from '@teambit/logger';\nimport { HarmonyWorker } from '@teambit/worker';\nimport { Tester, CallbackFn, TesterContext, Tests, ComponentPatternsMap, ComponentsResults } from '@teambit/tester';\nimport { TestsFiles, TestResult, TestsResult } from '@teambit/tests-results';\nimport { TestResult as JestTestResult, AggregatedResult } from '@jest/test-result';\nimport { formatResultsErrors } from 'jest-message-util';\nimport { ComponentMap } from '@teambit/component';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport type jest from 'jest';\nimport { JestError } from './error';\nimport type { JestWorker } from './jest.worker';\n\nexport class JestTester implements Tester {\n private readonly jestModule: typeof jest;\n\n constructor(\n readonly id: string,\n readonly jestConfig: any,\n private jestModulePath: string,\n private jestWorker: HarmonyWorker<JestWorker>,\n private logger: Logger\n ) {\n // eslint-disable-next-line global-require,import/no-dynamic-require\n this.jestModule = require(jestModulePath);\n }\n\n configPath = this.jestConfig;\n\n displayName = 'Jest';\n\n _callback: CallbackFn | undefined;\n\n displayConfig() {\n return readFileSync(this.jestConfig, 'utf8');\n }\n\n version() {\n return this.jestModule.getVersion();\n }\n\n // private getTestFile(path: string, testerContext: TesterContext): AbstractVinyl | undefined {\n // return testerContext.specFiles.toArray().reduce((acc: AbstractVinyl | undefined, [, specs]) => {\n // const file = specs.find((spec) => spec.path === path);\n // if (file) acc = file;\n // return acc;\n // }, undefined);\n // }\n\n private attachTestsToComponent(testerContext: TesterContext, testResult: JestTestResult[]) {\n return ComponentMap.as(testerContext.components, (component) => {\n const componentSpecFiles = testerContext.patterns.get(component);\n if (!componentSpecFiles) return undefined;\n const [, specs] = componentSpecFiles;\n return testResult.filter((test) => {\n return specs.filter((pattern) => minimatch(test.testFilePath, pattern.path)).length > 0;\n });\n });\n }\n\n private buildTestsObj(\n aggregatedResult: AggregatedResult,\n components: ComponentMap<JestTestResult[] | undefined>,\n testerContext: TesterContext,\n config?: any\n ): ComponentsResults[] {\n const testsSuiteResult = components.toArray().map(([component, testsFiles]) => {\n if (!testsFiles) return undefined;\n if (testsFiles?.length === 0) return undefined;\n const errors = this.getErrors(testsFiles);\n const tests = testsFiles.map((test) => {\n const file = new AbstractVinyl({ path: test.testFilePath, contents: readFileSync(test.testFilePath) });\n const testResults = test.testResults.map((testResult) => {\n const error = formatResultsErrors([testResult], config, { noStackTrace: true }) || undefined;\n const isFailure = testResult.status === 'failed';\n return new TestResult(\n testResult.ancestorTitles,\n testResult.title,\n testResult.status,\n testResult.duration,\n isFailure ? undefined : error,\n isFailure ? error : undefined\n );\n });\n const filePath = file?.basename || test.testFilePath;\n const getError = () => {\n if (!test.testExecError) return undefined;\n if (testerContext.watch) {\n // for some reason, during watch ('bit start'), if a file has an error, the `test.testExecError` is `{}`\n // (an empty object). the failureMessage contains the stringified error.\n // @todo: consider to always use the failureMessage, regardless the context.watch.\n return new JestError(test.failureMessage as string);\n }\n return new JestError(test.testExecError?.message, test.testExecError?.stack);\n };\n const error = getError();\n return new TestsFiles(\n filePath,\n testResults,\n test.numPassingTests,\n test.numFailingTests,\n test.numPendingTests,\n test.perfStats.runtime,\n test.perfStats.slow,\n error\n );\n });\n return {\n componentId: component.id,\n results: new TestsResult(tests, aggregatedResult.success, aggregatedResult.startTime),\n errors,\n };\n });\n\n return compact(testsSuiteResult);\n }\n\n private getErrors(testResult: JestTestResult[]): JestError[] {\n return testResult.reduce((errors: JestError[], test) => {\n if (test.testExecError) {\n const { message, stack, code, type } = test.testExecError;\n errors.push(new JestError(message, stack, code, type));\n } else if (test.failureMessage) {\n errors.push(new JestError(test.failureMessage));\n }\n return errors;\n }, []);\n }\n\n async onTestRunComplete(callback: CallbackFn) {\n this._callback = callback;\n }\n\n async test(context: TesterContext): Promise<Tests> {\n const config: any = {\n rootDir: context.rootPath,\n };\n\n // eslint-disable-next-line no-console\n console.warn = (message: string) => {\n this.logger.warn(message);\n };\n\n if (context.debug) config.runInBand = true;\n if (context.coverage) config.coverage = true;\n config.runInBand = true;\n\n if (context.watch) {\n config.watchAll = true;\n config.noCache = true;\n }\n // eslint-disable-next-line global-require,import/no-dynamic-require\n const jestConfig = require(this.jestConfig);\n\n const jestConfigWithSpecs = Object.assign(jestConfig, {\n testMatch: this.patternsToArray(context.patterns),\n });\n\n const withEnv = Object.assign(jestConfigWithSpecs, config);\n const testsOutPut = await this.jestModule.runCLI(withEnv, [this.jestConfig]);\n const testResults = testsOutPut.results.testResults;\n const componentsWithTests = this.attachTestsToComponent(context, testResults);\n const componentTestResults = this.buildTestsObj(\n testsOutPut.results,\n componentsWithTests,\n context,\n jestConfigWithSpecs\n );\n return new Tests(componentTestResults);\n }\n\n async watch(context: TesterContext): Promise<Tests> {\n // eslint-disable-next-line\n return new Promise(async (resolve) => {\n const workerApi = this.jestWorker.initiate(\n context.ui ? { stdout: true, stderr: true, stdin: true } : { stdout: false, stderr: false, stdin: false }\n );\n\n // eslint-disable-next-line\n const jestConfig = require(this.jestConfig);\n\n const jestConfigWithSpecs = Object.assign(jestConfig, {\n testMatch: this.patternsToArray(context.patterns),\n });\n\n try {\n const cbFn = proxy((results) => {\n if (!this._callback) return;\n const testResults = results.testResults;\n const componentsWithTests = this.attachTestsToComponent(context, testResults);\n const componentTestResults = this.buildTestsObj(results, componentsWithTests, context, jestConfigWithSpecs);\n const globalErrors = this.getErrors(testResults);\n const watchTestResults = {\n loading: false,\n errors: globalErrors,\n components: componentTestResults,\n };\n this._callback(watchTestResults);\n resolve(watchTestResults);\n });\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n await workerApi.onTestComplete(cbFn);\n\n await workerApi.watch(\n this.jestConfig,\n this.patternsToArray(context.patterns),\n context.rootPath,\n this.jestModulePath\n );\n } catch (err: any) {\n this.logger.error('jest.tester.watch() caught an error', err);\n }\n });\n }\n\n private patternsToArray(patterns: ComponentPatternsMap) {\n return flatten(patterns.toArray().map(([, pattern]) => pattern.map((p) => p.path)));\n }\n}\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/jest",
3
- "version": "0.0.663",
3
+ "version": "0.0.666",
4
4
  "homepage": "https://bit.dev/teambit/defender/jest",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.defender",
8
8
  "name": "jest",
9
- "version": "0.0.663"
9
+ "version": "0.0.666"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -21,12 +21,12 @@
21
21
  "jest-watcher": "26.6.2",
22
22
  "@babel/runtime": "7.12.18",
23
23
  "core-js": "^3.0.0",
24
- "@teambit/cli": "0.0.449",
25
- "@teambit/logger": "0.0.539",
26
- "@teambit/worker": "0.0.663",
27
- "@teambit/component": "0.0.663",
28
- "@teambit/tester": "0.0.663",
29
- "@teambit/tests-results": "0.0.96"
24
+ "@teambit/cli": "0.0.450",
25
+ "@teambit/logger": "0.0.540",
26
+ "@teambit/worker": "0.0.666",
27
+ "@teambit/component": "0.0.666",
28
+ "@teambit/tester": "0.0.666",
29
+ "@teambit/tests-results": "0.0.97"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/react": "^17.0.8",
@@ -39,7 +39,7 @@
39
39
  "@types/node": "12.20.4"
40
40
  },
41
41
  "peerDependencies": {
42
- "@teambit/legacy": "1.0.228",
42
+ "@teambit/legacy": "1.0.229",
43
43
  "jest": "26.6.3",
44
44
  "react-dom": "^16.8.0 || ^17.0.0",
45
45
  "react": "^16.8.0 || ^17.0.0"