@teambit/tester 0.0.574 → 0.0.578
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/tester.service.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Logger } from '@teambit/logger';
|
|
2
2
|
import { EnvService, ExecutionContext, EnvDefinition } from '@teambit/envs';
|
|
3
3
|
import { Workspace } from '@teambit/workspace';
|
|
4
|
-
import {
|
|
4
|
+
import { PubSubEngine } from 'graphql-subscriptions';
|
|
5
5
|
import { DevFilesMain } from '@teambit/dev-files';
|
|
6
6
|
import { Tests, CallbackFn } from './tester';
|
|
7
7
|
import { TesterOptions } from './tester.main.runtime';
|
|
@@ -39,7 +39,7 @@ export declare class TesterService implements EnvService<Tests, TesterDescriptor
|
|
|
39
39
|
/**
|
|
40
40
|
* regex used to identify which files to test.
|
|
41
41
|
*/
|
|
42
|
-
patterns: string[], logger: Logger, pubsub:
|
|
42
|
+
patterns: string[], logger: Logger, pubsub: PubSubEngine, devFiles: DevFilesMain);
|
|
43
43
|
_callback: CallbackFn | undefined;
|
|
44
44
|
render(env: EnvDefinition): JSX.Element;
|
|
45
45
|
getDescriptor(environment: EnvDefinition): {
|
|
@@ -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 { PubSub } 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: PubSub,\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"],"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"]}
|
|
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.578",
|
|
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.578"
|
|
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.
|
|
35
|
-
"@teambit/tests-results": "0.0.
|
|
36
|
-
"@teambit/ui": "0.0.
|
|
37
|
-
"@teambit/compiler": "0.0.
|
|
38
|
-
"@teambit/bit-error": "0.0.
|
|
39
|
-
"@teambit/defender.ui.test-loader": "0.0.
|
|
40
|
-
"@teambit/defender.ui.test-table": "0.0.
|
|
27
|
+
"@teambit/cli": "0.0.399",
|
|
28
|
+
"@teambit/logger": "0.0.487",
|
|
29
|
+
"@teambit/workspace": "0.0.578",
|
|
30
|
+
"@teambit/component": "0.0.578",
|
|
31
|
+
"@teambit/graphql": "0.0.578",
|
|
32
|
+
"@teambit/builder": "0.0.578",
|
|
33
|
+
"@teambit/dev-files": "0.0.578",
|
|
34
|
+
"@teambit/envs": "0.0.578",
|
|
35
|
+
"@teambit/tests-results": "0.0.85",
|
|
36
|
+
"@teambit/ui": "0.0.578",
|
|
37
|
+
"@teambit/compiler": "0.0.578",
|
|
38
|
+
"@teambit/bit-error": "0.0.385",
|
|
39
|
+
"@teambit/defender.ui.test-loader": "0.0.478",
|
|
40
|
+
"@teambit/defender.ui.test-table": "0.0.481",
|
|
41
41
|
"@teambit/design.ui.alert-card": "0.0.13",
|
|
42
42
|
"@teambit/design.ui.empty-box": "0.0.352",
|
|
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.483"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/react": "^17.0.8",
|
|
@@ -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.185",
|
|
61
61
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
62
62
|
"react": "^16.8.0 || ^17.0.0"
|
|
63
63
|
},
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"react": "-"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
|
-
"@teambit/legacy": "1.0.
|
|
88
|
+
"@teambit/legacy": "1.0.185",
|
|
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
|
@@ -6,7 +6,7 @@ import { EnvService, ExecutionContext, EnvDefinition } from '@teambit/envs';
|
|
|
6
6
|
import { ComponentMap } from '@teambit/component';
|
|
7
7
|
import { Workspace } from '@teambit/workspace';
|
|
8
8
|
import highlight from 'cli-highlight';
|
|
9
|
-
import {
|
|
9
|
+
import { PubSubEngine } from 'graphql-subscriptions';
|
|
10
10
|
import { DevFilesMain } from '@teambit/dev-files';
|
|
11
11
|
import { Tester, Tests, CallbackFn } from './tester';
|
|
12
12
|
import { TesterAspect } from './tester.aspect';
|
|
@@ -54,7 +54,7 @@ export class TesterService implements EnvService<Tests, TesterDescriptor> {
|
|
|
54
54
|
|
|
55
55
|
private logger: Logger,
|
|
56
56
|
|
|
57
|
-
private pubsub:
|
|
57
|
+
private pubsub: PubSubEngine,
|
|
58
58
|
|
|
59
59
|
private devFiles: DevFilesMain
|
|
60
60
|
) {}
|
|
Binary file
|