@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.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.945/dist/tester.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.defender_tester@0.0.945/dist/tester.docs.mdx';
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];
@@ -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 {};
@@ -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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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/tester",
3
- "version": "0.0.945",
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.945"
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.633",
26
- "@teambit/logger": "0.0.726",
27
- "@teambit/workspace": "0.0.945",
28
- "@teambit/envs": "0.0.945",
29
- "@teambit/component": "0.0.945",
30
- "@teambit/graphql": "0.0.945",
31
- "@teambit/builder": "0.0.945",
32
- "@teambit/dev-files": "0.0.945",
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.945",
35
- "@teambit/compiler": "0.0.945",
36
- "@teambit/component-compare": "0.0.193",
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.414",
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
  },
@@ -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
  }