@teambit/tester 0.0.881 → 0.0.883

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.
Files changed (40) hide show
  1. package/dist/exceptions/index.js +0 -6
  2. package/dist/exceptions/index.js.map +1 -1
  3. package/dist/exceptions/no-matching-components.js +0 -3
  4. package/dist/exceptions/no-matching-components.js.map +1 -1
  5. package/dist/exceptions/no-test-files-found.js +0 -6
  6. package/dist/exceptions/no-test-files-found.js.map +1 -1
  7. package/dist/index.js +0 -8
  8. package/dist/index.js.map +1 -1
  9. package/dist/test.cmd.js +2 -37
  10. package/dist/test.cmd.js.map +1 -1
  11. package/dist/tester.aspect.js +0 -5
  12. package/dist/tester.aspect.js.map +1 -1
  13. package/dist/tester.compare.section.js +0 -13
  14. package/dist/tester.compare.section.js.map +1 -1
  15. package/dist/tester.composition.js +0 -6
  16. package/dist/tester.composition.js.map +1 -1
  17. package/dist/tester.graphql.js +0 -17
  18. package/dist/tester.graphql.js.map +1 -1
  19. package/dist/tester.js +0 -6
  20. package/dist/tester.js.map +1 -1
  21. package/dist/tester.main.runtime.js +3 -94
  22. package/dist/tester.main.runtime.js.map +1 -1
  23. package/dist/tester.service.js +0 -50
  24. package/dist/tester.service.js.map +1 -1
  25. package/dist/tester.task.js +11 -54
  26. package/dist/tester.task.js.map +1 -1
  27. package/dist/tester.ui.runtime.js +1 -34
  28. package/dist/tester.ui.runtime.js.map +1 -1
  29. package/dist/tests.section.js +0 -13
  30. package/dist/tests.section.js.map +1 -1
  31. package/dist/utils/detect-spec-files.js +0 -4
  32. package/dist/utils/detect-spec-files.js.map +1 -1
  33. package/dist/utils/index.js +0 -3
  34. package/dist/utils/index.js.map +1 -1
  35. package/dist/utils/junit-generator.js +0 -18
  36. package/dist/utils/junit-generator.js.map +1 -1
  37. package/package-tar/teambit-tester-0.0.883.tgz +0 -0
  38. package/package.json +11 -11
  39. package/{preview-1666409808293.js → preview-1666582798766.js} +2 -2
  40. package/package-tar/teambit-tester-0.0.881.tgz +0 -0
@@ -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","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,98 +1,70 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.array.iterator.js");
6
-
7
5
  require("core-js/modules/es.promise.js");
8
-
9
6
  Object.defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
9
  exports.TesterTask = void 0;
13
10
  exports.getArtifactDef = getArtifactDef;
14
11
  exports.getJUnitArtifactPath = getJUnitArtifactPath;
15
-
16
12
  function _defineProperty2() {
17
13
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
-
19
14
  _defineProperty2 = function () {
20
15
  return data;
21
16
  };
22
-
23
17
  return data;
24
18
  }
25
-
26
19
  function _builder() {
27
20
  const data = require("@teambit/builder");
28
-
29
21
  _builder = function () {
30
22
  return data;
31
23
  };
32
-
33
24
  return data;
34
25
  }
35
-
36
26
  function _fsExtra() {
37
27
  const data = _interopRequireDefault(require("fs-extra"));
38
-
39
28
  _fsExtra = function () {
40
29
  return data;
41
30
  };
42
-
43
31
  return data;
44
32
  }
45
-
46
33
  function _path() {
47
34
  const data = require("path");
48
-
49
35
  _path = function () {
50
36
  return data;
51
37
  };
52
-
53
38
  return data;
54
39
  }
55
-
56
40
  function _compiler() {
57
41
  const data = require("@teambit/compiler");
58
-
59
42
  _compiler = function () {
60
43
  return data;
61
44
  };
62
-
63
45
  return data;
64
46
  }
65
-
66
47
  function _component() {
67
48
  const data = require("@teambit/component");
68
-
69
49
  _component = function () {
70
50
  return data;
71
51
  };
72
-
73
52
  return data;
74
53
  }
75
-
76
54
  function _utils() {
77
55
  const data = require("./utils");
78
-
79
56
  _utils = function () {
80
57
  return data;
81
58
  };
82
-
83
59
  return data;
84
60
  }
85
-
86
61
  function _junitGenerator() {
87
62
  const data = require("./utils/junit-generator");
88
-
89
63
  _junitGenerator = function () {
90
64
  return data;
91
65
  };
92
-
93
66
  return data;
94
67
  }
95
-
96
68
  /**
97
69
  * tester build task. Allows to test components during component build.
98
70
  */
@@ -103,21 +75,17 @@ class TesterTask {
103
75
  (0, _defineProperty2().default)(this, "name", 'TestComponents');
104
76
  (0, _defineProperty2().default)(this, "dependencies", [_compiler().CompilerAspect.id]);
105
77
  }
106
-
107
78
  async execute(context) {
108
79
  const components = context.capsuleNetwork.originalSeedersCapsules.getAllComponents();
109
80
  const tester = context.env.getTester();
110
-
111
81
  const componentsSpecFiles = _component().ComponentMap.as(components, component => {
112
82
  return (0, _utils().detectTestFiles)(component, this.devFiles);
113
83
  });
114
-
115
84
  const testCount = componentsSpecFiles.toArray().reduce((acc, [, specs]) => acc + specs.length, 0);
116
85
  if (testCount === 0) return {
117
86
  artifacts: [],
118
87
  componentsResults: []
119
88
  };
120
-
121
89
  const patternsWithCapsule = _component().ComponentMap.as(components, component => {
122
90
  const componentSpecFiles = componentsSpecFiles.get(component);
123
91
  if (!componentSpecFiles) throw new Error('capsule not found');
@@ -125,18 +93,16 @@ class TesterTask {
125
93
  const capsule = context.capsuleNetwork.graphCapsules.getCapsule(component.id);
126
94
  if (!capsule) throw new Error('capsule not found');
127
95
  const compiler = context.env.getCompiler();
128
-
129
96
  if (!compiler) {
130
97
  throw new Error(`compiler not found for ${component.id.toString()}`);
131
- } // @ts-ignore. not sure why ts complain that compiler might be undefined, when we check it above.
132
-
133
-
98
+ }
99
+ // @ts-ignore. not sure why ts complain that compiler might be undefined, when we check it above.
134
100
  const distFolder = compiler.getDistDir() || compiler.distDir;
135
101
  return {
136
102
  componentDir: (0, _path().join)(capsule.path, distFolder),
137
103
  paths: specs.map(specFile => {
138
- const distPath = compiler.getDistPathBySrcPath(specFile.relative); // TODO: fix spec type file need to capsule will return files with type AbstractVinyl
139
-
104
+ const distPath = compiler.getDistPathBySrcPath(specFile.relative);
105
+ // TODO: fix spec type file need to capsule will return files with type AbstractVinyl
140
106
  return {
141
107
  path: (0, _path().join)(capsule.path, distPath),
142
108
  relative: distPath
@@ -144,32 +110,30 @@ class TesterTask {
144
110
  })
145
111
  };
146
112
  });
147
-
148
113
  const specFilesWithCapsule = _component().ComponentMap.as(components, component => {
149
- const patternEntry = patternsWithCapsule.get(component); // @ts-ignore
150
-
114
+ const patternEntry = patternsWithCapsule.get(component);
115
+ // @ts-ignore
151
116
  const [, val] = patternEntry;
152
117
  return val.paths;
153
118
  });
154
-
155
119
  const testerContext = Object.assign(context, {
156
120
  release: true,
157
121
  specFiles: specFilesWithCapsule,
158
122
  rootPath: context.capsuleNetwork.capsulesRootDir,
159
123
  patterns: patternsWithCapsule
160
- }); // TODO: remove after fix AbstractVinyl on capsule
161
- // @ts-ignore
124
+ });
162
125
 
163
- const testsResults = await tester.test(testerContext); // write junit files
126
+ // TODO: remove after fix AbstractVinyl on capsule
127
+ // @ts-ignore
128
+ const testsResults = await tester.test(testerContext);
164
129
 
130
+ // write junit files
165
131
  await Promise.all(testsResults.components.map(async compResult => {
166
132
  const junit = (0, _junitGenerator().testsResultsToJUnitFormat)([compResult]);
167
133
  const capsule = context.capsuleNetwork.graphCapsules.getCapsule(compResult.componentId);
168
-
169
134
  if (!capsule) {
170
135
  throw new Error(`unable to find ${compResult.componentId.toString()} in capsules`);
171
136
  }
172
-
173
137
  await _fsExtra().default.outputFile((0, _path().join)(capsule.path, getJUnitArtifactPath()), junit);
174
138
  }));
175
139
  return {
@@ -177,14 +141,11 @@ class TesterTask {
177
141
  // @ts-ignore
178
142
  componentsResults: testsResults.components.map(componentTests => {
179
143
  var _context$capsuleNetwo;
180
-
181
144
  const componentErrors = componentTests.errors;
182
145
  const component = (_context$capsuleNetwo = context.capsuleNetwork.graphCapsules.getCapsule(componentTests.componentId)) === null || _context$capsuleNetwo === void 0 ? void 0 : _context$capsuleNetwo.component;
183
-
184
146
  if (!component) {
185
147
  throw new Error(`unable to find ${componentTests.componentId.toString()} in capsules`);
186
148
  }
187
-
188
149
  return {
189
150
  component,
190
151
  metadata: {
@@ -195,15 +156,11 @@ class TesterTask {
195
156
  })
196
157
  };
197
158
  }
198
-
199
159
  }
200
-
201
160
  exports.TesterTask = TesterTask;
202
-
203
161
  function getJUnitArtifactPath() {
204
162
  return (0, _path().join)(_builder().CAPSULE_ARTIFACTS_DIR, '__bit_junit.xml');
205
163
  }
206
-
207
164
  function getArtifactDef() {
208
165
  return [{
209
166
  name: 'junit',
@@ -1 +1 @@
1
- {"version":3,"names":["TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","components","capsuleNetwork","originalSeedersCapsules","getAllComponents","tester","env","getTester","componentsSpecFiles","ComponentMap","as","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","patternsWithCapsule","componentSpecFiles","get","Error","capsule","graphCapsules","getCapsule","compiler","getCompiler","toString","distFolder","getDistDir","distDir","componentDir","join","path","paths","map","specFile","distPath","getDistPathBySrcPath","relative","specFilesWithCapsule","patternEntry","val","testerContext","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","testsResultsToJUnitFormat","componentId","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","errors","metadata","tests","results","CAPSULE_ARTIFACTS_DIR","name","globPatterns","rootDir"],"sources":["tester.task.ts"],"sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport fs from 'fs-extra';\nimport { join } from 'path';\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 components = context.capsuleNetwork.originalSeedersCapsules.getAllComponents();\n const tester: Tester = context.env.getTester();\n const componentsSpecFiles = ComponentMap.as(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 patternsWithCapsule = ComponentMap.as(components, (component) => {\n const componentSpecFiles = componentsSpecFiles.get(component);\n if (!componentSpecFiles) throw new Error('capsule not found');\n const [, specs] = componentSpecFiles;\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 if (!compiler) {\n throw new Error(`compiler not found for ${component.id.toString()}`);\n }\n // @ts-ignore. not sure why ts complain that compiler might be undefined, when we check it above.\n const distFolder = compiler.getDistDir() || compiler.distDir;\n return {\n componentDir: join(capsule.path, distFolder),\n paths: specs.map((specFile) => {\n const distPath = compiler.getDistPathBySrcPath(specFile.relative);\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\n const specFilesWithCapsule = ComponentMap.as(components, (component) => {\n const patternEntry = patternsWithCapsule.get(component);\n // @ts-ignore\n const [, val] = patternEntry;\n return val.paths;\n });\n\n const testerContext = Object.assign(context, {\n release: true,\n specFiles: specFilesWithCapsule,\n rootPath: context.capsuleNetwork.capsulesRootDir,\n patterns: patternsWithCapsule,\n });\n\n // TODO: remove after fix AbstractVinyl on capsule\n // @ts-ignore\n const testsResults = await tester.test(testerContext);\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.errors;\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\n return {\n component,\n metadata: { tests: componentTests.results },\n errors: componentErrors,\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"],"mappings":"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"}
1
+ {"version":3,"names":["TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","components","capsuleNetwork","originalSeedersCapsules","getAllComponents","tester","env","getTester","componentsSpecFiles","ComponentMap","as","component","detectTestFiles","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","patternsWithCapsule","componentSpecFiles","get","Error","capsule","graphCapsules","getCapsule","compiler","getCompiler","toString","distFolder","getDistDir","distDir","componentDir","join","path","paths","map","specFile","distPath","getDistPathBySrcPath","relative","specFilesWithCapsule","patternEntry","val","testerContext","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","testsResultsToJUnitFormat","componentId","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","errors","metadata","tests","results","CAPSULE_ARTIFACTS_DIR","name","globPatterns","rootDir"],"sources":["tester.task.ts"],"sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask, CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport fs from 'fs-extra';\nimport { join } from 'path';\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 components = context.capsuleNetwork.originalSeedersCapsules.getAllComponents();\n const tester: Tester = context.env.getTester();\n const componentsSpecFiles = ComponentMap.as(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 patternsWithCapsule = ComponentMap.as(components, (component) => {\n const componentSpecFiles = componentsSpecFiles.get(component);\n if (!componentSpecFiles) throw new Error('capsule not found');\n const [, specs] = componentSpecFiles;\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 if (!compiler) {\n throw new Error(`compiler not found for ${component.id.toString()}`);\n }\n // @ts-ignore. not sure why ts complain that compiler might be undefined, when we check it above.\n const distFolder = compiler.getDistDir() || compiler.distDir;\n return {\n componentDir: join(capsule.path, distFolder),\n paths: specs.map((specFile) => {\n const distPath = compiler.getDistPathBySrcPath(specFile.relative);\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\n const specFilesWithCapsule = ComponentMap.as(components, (component) => {\n const patternEntry = patternsWithCapsule.get(component);\n // @ts-ignore\n const [, val] = patternEntry;\n return val.paths;\n });\n\n const testerContext = Object.assign(context, {\n release: true,\n specFiles: specFilesWithCapsule,\n rootPath: context.capsuleNetwork.capsulesRootDir,\n patterns: patternsWithCapsule,\n });\n\n // TODO: remove after fix AbstractVinyl on capsule\n // @ts-ignore\n const testsResults = await tester.test(testerContext);\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.errors;\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\n return {\n component,\n metadata: { tests: componentTests.results },\n errors: componentErrors,\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"],"mappings":"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"}
@@ -1,112 +1,82 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.array.iterator.js");
6
-
7
5
  require("core-js/modules/es.promise.js");
8
-
9
6
  Object.defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
9
  exports.default = exports.TesterUI = void 0;
13
-
14
10
  function _defineProperty2() {
15
11
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
-
17
12
  _defineProperty2 = function () {
18
13
  return data;
19
14
  };
20
-
21
15
  return data;
22
16
  }
23
-
24
17
  function _ui() {
25
18
  const data = require("@teambit/ui");
26
-
27
19
  _ui = function () {
28
20
  return data;
29
21
  };
30
-
31
22
  return data;
32
23
  }
33
-
34
24
  function _harmony() {
35
25
  const data = require("@teambit/harmony");
36
-
37
26
  _harmony = function () {
38
27
  return data;
39
28
  };
40
-
41
29
  return data;
42
30
  }
43
-
44
31
  function _component() {
45
32
  const data = require("@teambit/component");
46
-
47
33
  _component = function () {
48
34
  return data;
49
35
  };
50
-
51
36
  return data;
52
37
  }
53
-
54
38
  function _componentCompare() {
55
39
  const data = require("@teambit/component-compare");
56
-
57
40
  _componentCompare = function () {
58
41
  return data;
59
42
  };
60
-
61
43
  return data;
62
44
  }
63
-
64
45
  function _tests() {
65
46
  const data = require("./tests.section");
66
-
67
47
  _tests = function () {
68
48
  return data;
69
49
  };
70
-
71
50
  return data;
72
51
  }
73
-
74
52
  function _tester() {
75
53
  const data = require("./tester.aspect");
76
-
77
54
  _tester = function () {
78
55
  return data;
79
56
  };
80
-
81
57
  return data;
82
58
  }
83
-
84
59
  function _testerCompare() {
85
60
  const data = require("./tester.compare.section");
86
-
87
61
  _testerCompare = function () {
88
62
  return data;
89
63
  };
90
-
91
64
  return data;
92
65
  }
93
-
94
66
  class TesterUI {
95
67
  constructor(component, emptyStateSlot) {
96
68
  this.component = component;
97
69
  this.emptyStateSlot = emptyStateSlot;
98
70
  (0, _defineProperty2().default)(this, "stageKey", void 0);
99
71
  }
72
+
100
73
  /**
101
74
  * register a new tester empty state. this allows to register a different empty state from each environment for example.
102
75
  */
103
-
104
-
105
76
  registerEmptyState(emptyStateComponent) {
106
77
  this.emptyStateSlot.register(emptyStateComponent);
107
78
  return this;
108
79
  }
109
-
110
80
  static async provider([component, componentCompare], config, [emptyStateSlot]) {
111
81
  const testerUi = new TesterUI(component, emptyStateSlot);
112
82
  const section = new (_tests().TestsSection)(emptyStateSlot);
@@ -120,16 +90,13 @@ class TesterUI {
120
90
  componentCompare.registerRoutes([testerCompareSection.route]);
121
91
  return testerUi;
122
92
  }
123
-
124
93
  }
125
-
126
94
  exports.TesterUI = TesterUI;
127
95
  (0, _defineProperty2().default)(TesterUI, "dependencies", [_component().ComponentAspect, _componentCompare().ComponentCompareAspect]);
128
96
  (0, _defineProperty2().default)(TesterUI, "runtime", _ui().UIRuntime);
129
97
  (0, _defineProperty2().default)(TesterUI, "slots", [_harmony().Slot.withType()]);
130
98
  var _default = TesterUI;
131
99
  exports.default = _default;
132
-
133
100
  _tester().TesterAspect.addRuntime(TesterUI);
134
101
 
135
102
  //# sourceMappingURL=tester.ui.runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TesterUI","constructor","component","emptyStateSlot","registerEmptyState","emptyStateComponent","register","provider","componentCompare","config","testerUi","section","TestsSection","testerCompareSection","TesterCompareSection","registerRoute","route","registerNavigation","navigationLink","order","props","registerRoutes","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","TesterAspect","addRuntime"],"sources":["tester.ui.runtime.tsx"],"sourcesContent":["import { ComponentType } from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { SlotRegistry, Slot } from '@teambit/harmony';\nimport { ComponentAspect, ComponentUI } from '@teambit/component';\nimport { ComponentCompareUI, ComponentCompareAspect } from '@teambit/component-compare';\nimport { TestsSection } from './tests.section';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterCompareSection } from './tester.compare.section';\n\nexport type EmptyStateSlot = SlotRegistry<ComponentType>;\nexport class TesterUI {\n static dependencies = [ComponentAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n\n stageKey?: string;\n\n constructor(private component: ComponentUI, private emptyStateSlot: EmptyStateSlot) {}\n\n /**\n * register a new tester empty state. this allows to register a different empty state from each environment for example.\n */\n registerEmptyState(emptyStateComponent: ComponentType) {\n this.emptyStateSlot.register(emptyStateComponent);\n return this;\n }\n\n static slots = [Slot.withType<ComponentType>()];\n\n static async provider(\n [component, componentCompare]: [ComponentUI, ComponentCompareUI],\n config,\n [emptyStateSlot]: [EmptyStateSlot]\n ) {\n const testerUi = new TesterUI(component, emptyStateSlot);\n const section = new TestsSection(emptyStateSlot);\n const testerCompareSection = new TesterCompareSection(emptyStateSlot);\n component.registerRoute(section.route);\n component.registerNavigation(section.navigationLink, section.order);\n componentCompare.registerNavigation({\n props: testerCompareSection.navigationLink,\n order: testerCompareSection.navigationLink.order,\n });\n componentCompare.registerRoutes([testerCompareSection.route]);\n return testerUi;\n }\n}\n\nexport default TesterUI;\n\nTesterAspect.addRuntime(TesterUI);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,QAAN,CAAe;EAOpBC,WAAW,CAASC,SAAT,EAAyCC,cAAzC,EAAyE;IAAA,KAAhED,SAAgE,GAAhEA,SAAgE;IAAA,KAAhCC,cAAgC,GAAhCA,cAAgC;IAAA;EAAE;EAEtF;AACF;AACA;;;EACEC,kBAAkB,CAACC,mBAAD,EAAqC;IACrD,KAAKF,cAAL,CAAoBG,QAApB,CAA6BD,mBAA7B;IACA,OAAO,IAAP;EACD;;EAIoB,aAARE,QAAQ,CACnB,CAACL,SAAD,EAAYM,gBAAZ,CADmB,EAEnBC,MAFmB,EAGnB,CAACN,cAAD,CAHmB,EAInB;IACA,MAAMO,QAAQ,GAAG,IAAIV,QAAJ,CAAaE,SAAb,EAAwBC,cAAxB,CAAjB;IACA,MAAMQ,OAAO,GAAG,KAAIC,qBAAJ,EAAiBT,cAAjB,CAAhB;IACA,MAAMU,oBAAoB,GAAG,KAAIC,qCAAJ,EAAyBX,cAAzB,CAA7B;IACAD,SAAS,CAACa,aAAV,CAAwBJ,OAAO,CAACK,KAAhC;IACAd,SAAS,CAACe,kBAAV,CAA6BN,OAAO,CAACO,cAArC,EAAqDP,OAAO,CAACQ,KAA7D;IACAX,gBAAgB,CAACS,kBAAjB,CAAoC;MAClCG,KAAK,EAAEP,oBAAoB,CAACK,cADM;MAElCC,KAAK,EAAEN,oBAAoB,CAACK,cAArB,CAAoCC;IAFT,CAApC;IAIAX,gBAAgB,CAACa,cAAjB,CAAgC,CAACR,oBAAoB,CAACG,KAAtB,CAAhC;IACA,OAAON,QAAP;EACD;;AAnCmB;;;gCAATV,Q,kBACW,CAACsB,4BAAD,EAAkBC,0CAAlB,C;gCADXvB,Q,aAGMwB,e;gCAHNxB,Q,WAiBI,CAACyB,eAAA,CAAKC,QAAL,EAAD,C;eAqBF1B,Q;;;AAEf2B,sBAAA,CAAaC,UAAb,CAAwB5B,QAAxB"}
1
+ {"version":3,"names":["TesterUI","constructor","component","emptyStateSlot","registerEmptyState","emptyStateComponent","register","provider","componentCompare","config","testerUi","section","TestsSection","testerCompareSection","TesterCompareSection","registerRoute","route","registerNavigation","navigationLink","order","props","registerRoutes","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","TesterAspect","addRuntime"],"sources":["tester.ui.runtime.tsx"],"sourcesContent":["import { ComponentType } from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { SlotRegistry, Slot } from '@teambit/harmony';\nimport { ComponentAspect, ComponentUI } from '@teambit/component';\nimport { ComponentCompareUI, ComponentCompareAspect } from '@teambit/component-compare';\nimport { TestsSection } from './tests.section';\nimport { TesterAspect } from './tester.aspect';\nimport { TesterCompareSection } from './tester.compare.section';\n\nexport type EmptyStateSlot = SlotRegistry<ComponentType>;\nexport class TesterUI {\n static dependencies = [ComponentAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n\n stageKey?: string;\n\n constructor(private component: ComponentUI, private emptyStateSlot: EmptyStateSlot) {}\n\n /**\n * register a new tester empty state. this allows to register a different empty state from each environment for example.\n */\n registerEmptyState(emptyStateComponent: ComponentType) {\n this.emptyStateSlot.register(emptyStateComponent);\n return this;\n }\n\n static slots = [Slot.withType<ComponentType>()];\n\n static async provider(\n [component, componentCompare]: [ComponentUI, ComponentCompareUI],\n config,\n [emptyStateSlot]: [EmptyStateSlot]\n ) {\n const testerUi = new TesterUI(component, emptyStateSlot);\n const section = new TestsSection(emptyStateSlot);\n const testerCompareSection = new TesterCompareSection(emptyStateSlot);\n component.registerRoute(section.route);\n component.registerNavigation(section.navigationLink, section.order);\n componentCompare.registerNavigation({\n props: testerCompareSection.navigationLink,\n order: testerCompareSection.navigationLink.order,\n });\n componentCompare.registerRoutes([testerCompareSection.route]);\n return testerUi;\n }\n}\n\nexport default TesterUI;\n\nTesterAspect.addRuntime(TesterUI);\n"],"mappings":";;;;;;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGO,MAAMA,QAAQ,CAAC;EAOpBC,WAAW,CAASC,SAAsB,EAAUC,cAA8B,EAAE;IAAA,KAAhED,SAAsB,GAAtBA,SAAsB;IAAA,KAAUC,cAA8B,GAA9BA,cAA8B;IAAA;EAAG;;EAErF;AACF;AACA;EACEC,kBAAkB,CAACC,mBAAkC,EAAE;IACrD,IAAI,CAACF,cAAc,CAACG,QAAQ,CAACD,mBAAmB,CAAC;IACjD,OAAO,IAAI;EACb;EAIA,aAAaE,QAAQ,CACnB,CAACL,SAAS,EAAEM,gBAAgB,CAAoC,EAChEC,MAAM,EACN,CAACN,cAAc,CAAmB,EAClC;IACA,MAAMO,QAAQ,GAAG,IAAIV,QAAQ,CAACE,SAAS,EAAEC,cAAc,CAAC;IACxD,MAAMQ,OAAO,GAAG,KAAIC,qBAAY,EAACT,cAAc,CAAC;IAChD,MAAMU,oBAAoB,GAAG,KAAIC,qCAAoB,EAACX,cAAc,CAAC;IACrED,SAAS,CAACa,aAAa,CAACJ,OAAO,CAACK,KAAK,CAAC;IACtCd,SAAS,CAACe,kBAAkB,CAACN,OAAO,CAACO,cAAc,EAAEP,OAAO,CAACQ,KAAK,CAAC;IACnEX,gBAAgB,CAACS,kBAAkB,CAAC;MAClCG,KAAK,EAAEP,oBAAoB,CAACK,cAAc;MAC1CC,KAAK,EAAEN,oBAAoB,CAACK,cAAc,CAACC;IAC7C,CAAC,CAAC;IACFX,gBAAgB,CAACa,cAAc,CAAC,CAACR,oBAAoB,CAACG,KAAK,CAAC,CAAC;IAC7D,OAAON,QAAQ;EACjB;AACF;AAAC;AAAA,gCApCYV,QAAQ,kBACG,CAACsB,4BAAe,EAAEC,0CAAsB,CAAC;AAAA,gCADpDvB,QAAQ,aAGFwB,eAAS;AAAA,gCAHfxB,QAAQ,WAiBJ,CAACyB,eAAI,CAACC,QAAQ,EAAiB,CAAC;AAAA,eAqBlC1B,QAAQ;AAAA;AAEvB2B,sBAAY,CAACC,UAAU,CAAC5B,QAAQ,CAAC"}
@@ -1,42 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.TestsSection = void 0;
9
-
10
8
  function _defineProperty2() {
11
9
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
-
13
10
  _defineProperty2 = function () {
14
11
  return data;
15
12
  };
16
-
17
13
  return data;
18
14
  }
19
-
20
15
  function _react() {
21
16
  const data = _interopRequireDefault(require("react"));
22
-
23
17
  _react = function () {
24
18
  return data;
25
19
  };
26
-
27
20
  return data;
28
21
  }
29
-
30
22
  function _defenderUi() {
31
23
  const data = require("@teambit/defender.ui.test-page");
32
-
33
24
  _defenderUi = function () {
34
25
  return data;
35
26
  };
36
-
37
27
  return data;
38
28
  }
39
-
40
29
  class TestsSection {
41
30
  constructor(emptyStateSlot) {
42
31
  this.emptyStateSlot = emptyStateSlot;
@@ -52,9 +41,7 @@ class TestsSection {
52
41
  });
53
42
  (0, _defineProperty2().default)(this, "order", 40);
54
43
  }
55
-
56
44
  }
57
-
58
45
  exports.TestsSection = TestsSection;
59
46
 
60
47
  //# sourceMappingURL=tests.section.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TestsSection","constructor","emptyStateSlot","path","element","href","children"],"sources":["tests.section.tsx"],"sourcesContent":["import React from 'react';\nimport { Section } from '@teambit/component';\nimport { TestsPage } from '@teambit/defender.ui.test-page';\nimport { EmptyStateSlot } from './tester.ui.runtime';\n\nexport class TestsSection implements Section {\n constructor(private emptyStateSlot: EmptyStateSlot) {}\n\n route = {\n path: '~tests',\n element: <TestsPage emptyState={this.emptyStateSlot} />,\n };\n navigationLink = {\n href: '~tests',\n children: 'Tests',\n };\n order = 40;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,YAAN,CAAsC;EAC3CC,WAAW,CAASC,cAAT,EAAyC;IAAA,KAAhCA,cAAgC,GAAhCA,cAAgC;IAAA,+CAE5C;MACNC,IAAI,EAAE,QADA;MAENC,OAAO,eAAE,+BAAC,uBAAD;QAAW,UAAU,EAAE,KAAKF;MAA5B;IAFH,CAF4C;IAAA,wDAMnC;MACfG,IAAI,EAAE,QADS;MAEfC,QAAQ,EAAE;IAFK,CANmC;IAAA,+CAU5C,EAV4C;EAAE;;AADX"}
1
+ {"version":3,"names":["TestsSection","constructor","emptyStateSlot","path","element","href","children"],"sources":["tests.section.tsx"],"sourcesContent":["import React from 'react';\nimport { Section } from '@teambit/component';\nimport { TestsPage } from '@teambit/defender.ui.test-page';\nimport { EmptyStateSlot } from './tester.ui.runtime';\n\nexport class TestsSection implements Section {\n constructor(private emptyStateSlot: EmptyStateSlot) {}\n\n route = {\n path: '~tests',\n element: <TestsPage emptyState={this.emptyStateSlot} />,\n };\n navigationLink = {\n href: '~tests',\n children: 'Tests',\n };\n order = 40;\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGO,MAAMA,YAAY,CAAoB;EAC3CC,WAAW,CAASC,cAA8B,EAAE;IAAA,KAAhCA,cAA8B,GAA9BA,cAA8B;IAAA,+CAE1C;MACNC,IAAI,EAAE,QAAQ;MACdC,OAAO,eAAE,+BAAC,uBAAS;QAAC,UAAU,EAAE,IAAI,CAACF;MAAe;IACtD,CAAC;IAAA,wDACgB;MACfG,IAAI,EAAE,QAAQ;MACdC,QAAQ,EAAE;IACZ,CAAC;IAAA,+CACO,EAAE;EAV2C;AAWvD;AAAC"}
@@ -4,17 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.detectTestFiles = detectTestFiles;
7
-
8
7
  function _tester() {
9
8
  const data = require("../tester.aspect");
10
-
11
9
  _tester = function () {
12
10
  return data;
13
11
  };
14
-
15
12
  return data;
16
13
  }
17
-
18
14
  /**
19
15
  * detect test files in components
20
16
  */
@@ -1 +1 @@
1
- {"version":3,"names":["detectTestFiles","component","devFiles","files","getDevFiles","testFiles","get","TesterAspect","id","state","filesystem","filter","file","includes","relative"],"sources":["detect-spec-files.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { TesterAspect } from '../tester.aspect';\n\n/**\n * detect test files in components\n */\nexport function detectTestFiles(component: Component, devFiles: DevFilesMain) {\n const files = devFiles.getDevFiles(component);\n const testFiles = files.get(TesterAspect.id);\n return component.state.filesystem.files.filter((file) => testFiles.includes(file.relative));\n}\n"],"mappings":";;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;AACA;AACA;AACO,SAASA,eAAT,CAAyBC,SAAzB,EAA+CC,QAA/C,EAAuE;EAC5E,MAAMC,KAAK,GAAGD,QAAQ,CAACE,WAAT,CAAqBH,SAArB,CAAd;EACA,MAAMI,SAAS,GAAGF,KAAK,CAACG,GAAN,CAAUC,sBAAA,CAAaC,EAAvB,CAAlB;EACA,OAAOP,SAAS,CAACQ,KAAV,CAAgBC,UAAhB,CAA2BP,KAA3B,CAAiCQ,MAAjC,CAAyCC,IAAD,IAAUP,SAAS,CAACQ,QAAV,CAAmBD,IAAI,CAACE,QAAxB,CAAlD,CAAP;AACD"}
1
+ {"version":3,"names":["detectTestFiles","component","devFiles","files","getDevFiles","testFiles","get","TesterAspect","id","state","filesystem","filter","file","includes","relative"],"sources":["detect-spec-files.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { DevFilesMain } from '@teambit/dev-files';\nimport { TesterAspect } from '../tester.aspect';\n\n/**\n * detect test files in components\n */\nexport function detectTestFiles(component: Component, devFiles: DevFilesMain) {\n const files = devFiles.getDevFiles(component);\n const testFiles = files.get(TesterAspect.id);\n return component.state.filesystem.files.filter((file) => testFiles.includes(file.relative));\n}\n"],"mappings":";;;;;;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AACA;AACA;AACO,SAASA,eAAe,CAACC,SAAoB,EAAEC,QAAsB,EAAE;EAC5E,MAAMC,KAAK,GAAGD,QAAQ,CAACE,WAAW,CAACH,SAAS,CAAC;EAC7C,MAAMI,SAAS,GAAGF,KAAK,CAACG,GAAG,CAACC,sBAAY,CAACC,EAAE,CAAC;EAC5C,OAAOP,SAAS,CAACQ,KAAK,CAACC,UAAU,CAACP,KAAK,CAACQ,MAAM,CAAEC,IAAI,IAAKP,SAAS,CAACQ,QAAQ,CAACD,IAAI,CAACE,QAAQ,CAAC,CAAC;AAC7F"}
@@ -9,14 +9,11 @@ Object.defineProperty(exports, "detectTestFiles", {
9
9
  return _detectSpecFiles().detectTestFiles;
10
10
  }
11
11
  });
12
-
13
12
  function _detectSpecFiles() {
14
13
  const data = require("./detect-spec-files");
15
-
16
14
  _detectSpecFiles = function () {
17
15
  return data;
18
16
  };
19
-
20
17
  return data;
21
18
  }
22
19
 
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { detectTestFiles } from './detect-spec-files';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { detectTestFiles } from './detect-spec-files';\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}