@teambit/tester 0.0.945 → 0.0.947
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/{preview-1672284308356.js → preview-1672370816000.js} +2 -2
- package/dist/tester.service.d.ts +7 -2
- package/dist/tester.service.js +7 -0
- package/dist/tester.service.js.map +1 -1
- package/package-tar/teambit-tester-0.0.947.tgz +0 -0
- package/package.json +14 -14
- package/tester.service.tsx +14 -1
- package/package-tar/teambit-tester-0.0.945.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.947/dist/tester.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.947/dist/tester.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/dist/tester.service.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Logger } from '@teambit/logger';
|
|
3
|
-
import { EnvService, ExecutionContext, EnvDefinition } from '@teambit/envs';
|
|
3
|
+
import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
|
|
4
4
|
import { Workspace } from '@teambit/workspace';
|
|
5
5
|
import { PubSubEngine } from 'graphql-subscriptions';
|
|
6
6
|
import { DevFilesMain } from '@teambit/dev-files';
|
|
7
|
-
import { Tests, CallbackFn } from './tester';
|
|
7
|
+
import { Tester, Tests, CallbackFn } from './tester';
|
|
8
8
|
import { TesterOptions } from './tester.main.runtime';
|
|
9
9
|
export declare const OnTestsChanged = "OnTestsChanged";
|
|
10
|
+
declare type TesterTransformationMap = ServiceTransformationMap & {
|
|
11
|
+
getTester: () => Tester;
|
|
12
|
+
};
|
|
10
13
|
export declare type TesterDescriptor = {
|
|
11
14
|
/**
|
|
12
15
|
* id of the tester (e.g. jest/mocha)
|
|
@@ -42,6 +45,8 @@ export declare class TesterService implements EnvService<Tests, TesterDescriptor
|
|
|
42
45
|
config: string;
|
|
43
46
|
version: string;
|
|
44
47
|
} | undefined;
|
|
48
|
+
transform(env: Env, context: EnvContext): TesterTransformationMap | undefined;
|
|
45
49
|
onTestRunComplete(callback: CallbackFn): void;
|
|
46
50
|
run(context: ExecutionContext, options: TesterOptions): Promise<Tests>;
|
|
47
51
|
}
|
|
52
|
+
export {};
|
package/dist/tester.service.js
CHANGED
|
@@ -107,6 +107,13 @@ class TesterService {
|
|
|
107
107
|
version: tester.version ? tester.version() : '?'
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
+
transform(env, context) {
|
|
111
|
+
// Old env
|
|
112
|
+
if (!(env !== null && env !== void 0 && env.tester)) return undefined;
|
|
113
|
+
return {
|
|
114
|
+
getTester: () => env.tester()(context)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
110
117
|
onTestRunComplete(callback) {
|
|
111
118
|
this._callback = callback;
|
|
112
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["chalk","require","OnTestsChanged","TesterService","constructor","workspace","logger","pubsub","devFiles","render","env","descriptor","getDescriptor","id","displayName","version","highlight","config","language","ignoreIllegals","environment","getTester","undefined","tester","icon","displayConfig","onTestRunComplete","callback","_callback","run","context","options","specFiles","ComponentMap","as","components","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","componentWithTests","ui","consoleWarning","cyan","Tests","console","patterns","componentDir","componentPatterns","getDevPatterns","TesterAspect","paths","map","pattern","path","resolve","relative","additionalHostDependencies","getAdditionalTestHostDependencies","testerContext","Object","assign","release","rootPath","debug","watch","coverage","results","forEach","publish","testsChanged","componentId","toString","testsResults","loading","test"],"sources":["tester.service.tsx"],"sourcesContent":["import { Logger } from '@teambit/logger';\nimport { resolve } from 'path';\nimport React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvService, ExecutionContext, EnvDefinition } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Workspace } from '@teambit/workspace';\nimport highlight from 'cli-highlight';\nimport { PubSubEngine } from 'graphql-subscriptions';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { Tester, Tests, CallbackFn } from './tester';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterOptions } from './tester.main.runtime';\nimport { detectTestFiles } from './utils';\n\nconst chalk = require('chalk');\n\nexport const OnTestsChanged = 'OnTestsChanged';\n\nexport type TesterDescriptor = {\n /**\n * id of the tester (e.g. jest/mocha)\n */\n id: string;\n\n /**\n * display name of the tester (e.g. Jest / Mocha)\n */\n displayName: string;\n\n /**\n * icon of the configured tester.\n */\n icon: string;\n\n /**\n * string containing the config for display.\n */\n config: string;\n\n version?: string;\n};\n\nexport class TesterService implements EnvService<Tests, TesterDescriptor> {\n name = 'tester';\n\n constructor(\n readonly workspace: Workspace,\n\n private logger: Logger,\n\n private pubsub: PubSubEngine,\n\n private devFiles: DevFilesMain\n ) {}\n\n _callback: CallbackFn | undefined;\n\n render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured tester: </Text>\n <Text>\n {descriptor?.id} ({descriptor?.displayName} @ {descriptor?.version})\n </Text>\n <Newline />\n <Text underline color=\"cyan\">\n tester config:\n </Text>\n <Newline />\n <Text>\n {/* refactor a separate component which highlights for cli */}\n {highlight(descriptor?.config || '', { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(environment: EnvDefinition) {\n if (!environment.env.getTester) return undefined;\n const tester: Tester = environment.env.getTester();\n\n return {\n id: tester.id || '',\n displayName: tester.displayName || '',\n icon: tester.icon || '',\n config: tester.displayConfig ? tester.displayConfig() : '',\n version: tester.version ? tester.version() : '?',\n };\n }\n\n onTestRunComplete(callback: CallbackFn) {\n this._callback = callback;\n }\n\n async run(context: ExecutionContext, options: TesterOptions): Promise<Tests> {\n const tester: Tester = context.env.getTester();\n const specFiles = ComponentMap.as(context.components, (component) => {\n return detectTestFiles(component, this.devFiles);\n });\n const testCount = specFiles.toArray().reduce((acc, [, specs]) => acc + specs.length, 0);\n\n const componentWithTests = specFiles.toArray().reduce((acc: number, [, specs]) => {\n if (specs.length > 0) acc += 1;\n return acc;\n }, 0);\n\n if (testCount === 0 && !options.ui) {\n this.logger.consoleWarning(`no tests found for environment ${chalk.cyan(context.id)}\\n`);\n return new Tests([]);\n }\n\n if (!options.ui)\n this.logger.console(`testing ${componentWithTests} components with environment ${chalk.cyan(context.id)}\\n`);\n\n const patterns = ComponentMap.as(context.components, (component) => {\n const componentDir = this.workspace.componentDir(component.id);\n const componentPatterns = this.devFiles.getDevPatterns(component, TesterAspect.id);\n return {\n componentDir,\n paths:\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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"}
|
|
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.947",
|
|
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.947"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -22,18 +22,18 @@
|
|
|
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.
|
|
26
|
-
"@teambit/logger": "0.0.
|
|
27
|
-
"@teambit/workspace": "0.0.
|
|
28
|
-
"@teambit/envs": "0.0.
|
|
29
|
-
"@teambit/component": "0.0.
|
|
30
|
-
"@teambit/graphql": "0.0.
|
|
31
|
-
"@teambit/builder": "0.0.
|
|
32
|
-
"@teambit/dev-files": "0.0.
|
|
25
|
+
"@teambit/cli": "0.0.634",
|
|
26
|
+
"@teambit/logger": "0.0.727",
|
|
27
|
+
"@teambit/workspace": "0.0.947",
|
|
28
|
+
"@teambit/envs": "0.0.947",
|
|
29
|
+
"@teambit/component": "0.0.947",
|
|
30
|
+
"@teambit/graphql": "0.0.947",
|
|
31
|
+
"@teambit/builder": "0.0.947",
|
|
32
|
+
"@teambit/dev-files": "0.0.947",
|
|
33
33
|
"@teambit/tests-results": "0.0.104",
|
|
34
|
-
"@teambit/ui": "0.0.
|
|
35
|
-
"@teambit/compiler": "0.0.
|
|
36
|
-
"@teambit/component-compare": "0.0.
|
|
34
|
+
"@teambit/ui": "0.0.947",
|
|
35
|
+
"@teambit/compiler": "0.0.947",
|
|
36
|
+
"@teambit/component-compare": "0.0.195",
|
|
37
37
|
"@teambit/defender.ui.test-compare-section": "0.0.1",
|
|
38
38
|
"@teambit/defender.ui.test-compare": "0.0.140",
|
|
39
39
|
"@teambit/defender.ui.test-page": "0.0.14",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@teambit/defender.content.tester-overview": "1.95.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@teambit/legacy": "1.0.
|
|
55
|
+
"@teambit/legacy": "1.0.415",
|
|
56
56
|
"react": "^16.8.0 || ^17.0.0",
|
|
57
57
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
58
58
|
},
|
package/tester.service.tsx
CHANGED
|
@@ -2,7 +2,7 @@ import { Logger } from '@teambit/logger';
|
|
|
2
2
|
import { resolve } from 'path';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Text, Newline } from 'ink';
|
|
5
|
-
import { EnvService, ExecutionContext, EnvDefinition } from '@teambit/envs';
|
|
5
|
+
import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
|
|
6
6
|
import { ComponentMap } from '@teambit/component';
|
|
7
7
|
import { Workspace } from '@teambit/workspace';
|
|
8
8
|
import highlight from 'cli-highlight';
|
|
@@ -17,6 +17,10 @@ const chalk = require('chalk');
|
|
|
17
17
|
|
|
18
18
|
export const OnTestsChanged = 'OnTestsChanged';
|
|
19
19
|
|
|
20
|
+
type TesterTransformationMap = ServiceTransformationMap & {
|
|
21
|
+
getTester: () => Tester;
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
export type TesterDescriptor = {
|
|
21
25
|
/**
|
|
22
26
|
* id of the tester (e.g. jest/mocha)
|
|
@@ -91,6 +95,15 @@ export class TesterService implements EnvService<Tests, TesterDescriptor> {
|
|
|
91
95
|
};
|
|
92
96
|
}
|
|
93
97
|
|
|
98
|
+
transform(env: Env, context: EnvContext): TesterTransformationMap | undefined {
|
|
99
|
+
// Old env
|
|
100
|
+
if (!env?.tester) return undefined;
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
getTester: () => env.tester()(context),
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
94
107
|
onTestRunComplete(callback: CallbackFn) {
|
|
95
108
|
this._callback = callback;
|
|
96
109
|
}
|
|
Binary file
|