@teambit/tester 0.0.627 → 0.0.632

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.
@@ -0,0 +1 @@
1
+
@@ -10,5 +10,10 @@ export declare class TesterTask implements BuildTask {
10
10
  readonly dependencies: string[];
11
11
  constructor(aspectId: string, devFiles: DevFilesMain);
12
12
  execute(context: BuildContext): Promise<BuiltTaskResult>;
13
- private writeNpmIgnore;
14
13
  }
14
+ export declare function getJUnitArtifactPath(): string;
15
+ export declare function getArtifactDef(): {
16
+ name: string;
17
+ globPatterns: string[];
18
+ rootDir: string;
19
+ }[];
@@ -10,6 +10,8 @@ Object.defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
12
  exports.TesterTask = void 0;
13
+ exports.getArtifactDef = getArtifactDef;
14
+ exports.getJUnitArtifactPath = getJUnitArtifactPath;
13
15
 
14
16
  function _defineProperty2() {
15
17
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -21,6 +23,16 @@ function _defineProperty2() {
21
23
  return data;
22
24
  }
23
25
 
26
+ function _builder() {
27
+ const data = require("@teambit/builder");
28
+
29
+ _builder = function () {
30
+ return data;
31
+ };
32
+
33
+ return data;
34
+ }
35
+
24
36
  function _fsExtra() {
25
37
  const data = _interopRequireDefault(require("fs-extra"));
26
38
 
@@ -81,11 +93,9 @@ function _junitGenerator() {
81
93
  return data;
82
94
  }
83
95
 
84
- const JUNIT_PATH = '__bit_junit.xml';
85
96
  /**
86
97
  * tester build task. Allows to test components during component build.
87
98
  */
88
-
89
99
  class TesterTask {
90
100
  constructor(aspectId, devFiles) {
91
101
  this.aspectId = aspectId;
@@ -142,14 +152,10 @@ class TesterTask {
142
152
  throw new Error(`unable to find ${compResult.componentId.toString()} in capsules`);
143
153
  }
144
154
 
145
- await _fsExtra().default.writeFile((0, _path().join)(capsule.path, JUNIT_PATH), junit);
146
- await this.writeNpmIgnore(capsule.path);
155
+ await _fsExtra().default.outputFile((0, _path().join)(capsule.path, getJUnitArtifactPath()), junit);
147
156
  }));
148
157
  return {
149
- artifacts: [{
150
- name: 'junit',
151
- globPatterns: [JUNIT_PATH]
152
- }],
158
+ artifacts: getArtifactDef(),
153
159
  // @ts-ignore
154
160
  componentsResults: testsResults.components.map(componentTests => {
155
161
  var _componentTests$resul, _context$capsuleNetwo;
@@ -184,15 +190,20 @@ class TesterTask {
184
190
  };
185
191
  }
186
192
 
187
- async writeNpmIgnore(dir) {
188
- const NPM_IGNORE_FILE = '.npmignore';
189
- const npmIgnorePath = (0, _path().join)(dir, NPM_IGNORE_FILE);
190
- const npmIgnoreEntriesStr = `\n${JUNIT_PATH}\n`;
191
- await _fsExtra().default.appendFile(npmIgnorePath, npmIgnoreEntriesStr);
192
- }
193
-
194
193
  }
195
194
 
196
195
  exports.TesterTask = TesterTask;
197
196
 
197
+ function getJUnitArtifactPath() {
198
+ return (0, _path().join)(_builder().CAPSULE_ARTIFACTS_DIR, '__bit_junit.xml');
199
+ }
200
+
201
+ function getArtifactDef() {
202
+ return [{
203
+ name: 'junit',
204
+ globPatterns: [getJUnitArtifactPath()],
205
+ rootDir: _builder().CAPSULE_ARTIFACTS_DIR
206
+ }];
207
+ }
208
+
198
209
  //# sourceMappingURL=tester.task.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["tester.task.ts"],"names":["JUNIT_PATH","TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","tester","env","getTester","componentsSpecFiles","ComponentMap","as","components","component","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","specFilesWithCapsule","componentSpecFiles","get","Error","map","specFile","capsule","capsuleNetwork","graphCapsules","getCapsule","compiler","getCompiler","distPath","getDistPathBySrcPath","relative","path","testerContext","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","componentId","toString","fs","writeFile","writeNpmIgnore","name","globPatterns","componentTests","componentErrors","results","testFiles","errors","file","error","failureMessage","push","tests","forEach","failure","metadata","dir","NPM_IGNORE_FILE","npmIgnorePath","npmIgnoreEntriesStr","appendFile"],"mappings":"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","sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask } 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\nconst JUNIT_PATH = '__bit_junit.xml';\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 tester: Tester = context.env.getTester();\n const componentsSpecFiles = ComponentMap.as(context.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 specFilesWithCapsule = ComponentMap.as(context.components, (component) => {\n const componentSpecFiles = componentsSpecFiles.get(component);\n if (!componentSpecFiles) throw new Error('capsule not found');\n const [, specs] = componentSpecFiles;\n return specs.map((specFile) => {\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 const distPath = compiler.getDistPathBySrcPath(specFile.relative);\n\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 const testerContext = Object.assign(context, {\n release: true,\n specFiles: specFilesWithCapsule,\n rootPath: context.capsuleNetwork.capsulesRootDir,\n patterns: specFilesWithCapsule,\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.writeFile(join(capsule.path, JUNIT_PATH), junit);\n await this.writeNpmIgnore(capsule.path);\n })\n );\n\n return {\n artifacts: [\n {\n name: 'junit',\n globPatterns: [JUNIT_PATH],\n },\n ], // @ts-ignore\n componentsResults: testsResults.components.map((componentTests) => {\n const componentErrors = componentTests.results?.testFiles.reduce((errors: string[], file) => {\n if (file?.error?.failureMessage) {\n errors.push(file.error.failureMessage);\n }\n file.tests.forEach((test) => {\n if (test.error) errors.push(test.error);\n if (test.failure) errors.push(test.failure);\n });\n\n return errors;\n }, []);\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 return {\n component,\n metadata: { tests: componentTests.results },\n errors: componentErrors,\n };\n }),\n };\n }\n\n private async writeNpmIgnore(dir: string) {\n const NPM_IGNORE_FILE = '.npmignore';\n const npmIgnorePath = join(dir, NPM_IGNORE_FILE);\n const npmIgnoreEntriesStr = `\\n${JUNIT_PATH}\\n`;\n await fs.appendFile(npmIgnorePath, npmIgnoreEntriesStr);\n }\n}\n"]}
1
+ {"version":3,"sources":["tester.task.ts"],"names":["TesterTask","constructor","aspectId","devFiles","CompilerAspect","id","execute","context","tester","env","getTester","componentsSpecFiles","ComponentMap","as","components","component","testCount","toArray","reduce","acc","specs","length","artifacts","componentsResults","specFilesWithCapsule","componentSpecFiles","get","Error","map","specFile","capsule","capsuleNetwork","graphCapsules","getCapsule","compiler","getCompiler","distPath","getDistPathBySrcPath","relative","path","testerContext","Object","assign","release","specFiles","rootPath","capsulesRootDir","patterns","testsResults","test","Promise","all","compResult","junit","componentId","toString","fs","outputFile","getJUnitArtifactPath","getArtifactDef","componentTests","componentErrors","results","testFiles","errors","file","error","failureMessage","push","tests","forEach","failure","metadata","CAPSULE_ARTIFACTS_DIR","name","globPatterns","rootDir"],"mappings":"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","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 tester: Tester = context.env.getTester();\n const componentsSpecFiles = ComponentMap.as(context.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 specFilesWithCapsule = ComponentMap.as(context.components, (component) => {\n const componentSpecFiles = componentsSpecFiles.get(component);\n if (!componentSpecFiles) throw new Error('capsule not found');\n const [, specs] = componentSpecFiles;\n return specs.map((specFile) => {\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 const distPath = compiler.getDistPathBySrcPath(specFile.relative);\n\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 const testerContext = Object.assign(context, {\n release: true,\n specFiles: specFilesWithCapsule,\n rootPath: context.capsuleNetwork.capsulesRootDir,\n patterns: specFilesWithCapsule,\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.results?.testFiles.reduce((errors: string[], file) => {\n if (file?.error?.failureMessage) {\n errors.push(file.error.failureMessage);\n }\n file.tests.forEach((test) => {\n if (test.error) errors.push(test.error);\n if (test.failure) errors.push(test.failure);\n });\n\n return errors;\n }, []);\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 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"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/tester",
3
- "version": "0.0.627",
3
+ "version": "0.0.632",
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.627"
9
+ "version": "0.0.632"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -24,17 +24,17 @@
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.431",
28
- "@teambit/logger": "0.0.520",
29
- "@teambit/workspace": "0.0.627",
30
- "@teambit/component": "0.0.627",
31
- "@teambit/graphql": "0.0.627",
32
- "@teambit/builder": "0.0.627",
33
- "@teambit/dev-files": "0.0.627",
34
- "@teambit/envs": "0.0.627",
27
+ "@teambit/cli": "0.0.434",
28
+ "@teambit/logger": "0.0.524",
29
+ "@teambit/workspace": "0.0.632",
30
+ "@teambit/component": "0.0.632",
31
+ "@teambit/graphql": "0.0.632",
32
+ "@teambit/builder": "0.0.632",
33
+ "@teambit/dev-files": "0.0.632",
34
+ "@teambit/envs": "0.0.632",
35
35
  "@teambit/tests-results": "0.0.95",
36
- "@teambit/ui": "0.0.627",
37
- "@teambit/compiler": "0.0.627",
36
+ "@teambit/ui": "0.0.632",
37
+ "@teambit/compiler": "0.0.632",
38
38
  "@teambit/bit-error": "0.0.394",
39
39
  "@teambit/defender.ui.test-loader": "0.0.488",
40
40
  "@teambit/defender.ui.test-table": "0.0.492",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "peerDependencies": {
59
59
  "@apollo/client": "^3.0.0",
60
- "@teambit/legacy": "1.0.208",
60
+ "@teambit/legacy": "1.0.210",
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.208",
88
+ "@teambit/legacy": "1.0.210",
89
89
  "react-dom": "^16.8.0 || ^17.0.0",
90
90
  "react": "^16.8.0 || ^17.0.0"
91
91
  }