@testomatio/reporter 1.6.13 → 2.0.1-beta-esm

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 (142) hide show
  1. package/lib/adapter/codecept.d.ts +2 -0
  2. package/lib/adapter/codecept.js +295 -335
  3. package/lib/adapter/cucumber/current.d.ts +14 -0
  4. package/lib/adapter/cucumber/current.js +195 -203
  5. package/lib/adapter/cucumber/legacy.d.ts +0 -0
  6. package/lib/adapter/cucumber/legacy.js +130 -155
  7. package/lib/adapter/cucumber.d.ts +2 -0
  8. package/lib/adapter/cucumber.js +5 -16
  9. package/lib/adapter/cypress-plugin/index.d.ts +2 -0
  10. package/lib/adapter/cypress-plugin/index.js +93 -105
  11. package/lib/adapter/jasmine.d.ts +11 -0
  12. package/lib/adapter/jasmine.js +54 -53
  13. package/lib/adapter/jest.d.ts +13 -0
  14. package/lib/adapter/jest.js +97 -99
  15. package/lib/adapter/mocha.d.ts +2 -0
  16. package/lib/adapter/mocha.js +112 -140
  17. package/lib/adapter/playwright.d.ts +14 -0
  18. package/lib/adapter/playwright.js +195 -231
  19. package/lib/adapter/vitest.d.ts +35 -0
  20. package/lib/adapter/vitest.js +150 -149
  21. package/lib/adapter/webdriver.d.ts +24 -0
  22. package/lib/adapter/webdriver.js +134 -119
  23. package/lib/bin/cli.d.ts +2 -0
  24. package/lib/bin/cli.js +164 -211
  25. package/lib/bin/reportXml.d.ts +2 -0
  26. package/lib/bin/reportXml.js +49 -52
  27. package/lib/bin/startTest.d.ts +2 -0
  28. package/lib/bin/startTest.js +82 -95
  29. package/lib/bin/uploadArtifacts.d.ts +2 -0
  30. package/lib/bin/uploadArtifacts.js +55 -61
  31. package/lib/client.d.ts +76 -0
  32. package/lib/client.js +411 -465
  33. package/lib/config.d.ts +1 -0
  34. package/lib/config.js +16 -21
  35. package/lib/constants.d.ts +25 -0
  36. package/lib/constants.js +50 -44
  37. package/lib/data-storage.d.ts +34 -0
  38. package/lib/data-storage.js +206 -188
  39. package/lib/junit-adapter/adapter.d.ts +9 -0
  40. package/lib/junit-adapter/adapter.js +17 -20
  41. package/lib/junit-adapter/csharp.d.ts +4 -0
  42. package/lib/junit-adapter/csharp.js +18 -14
  43. package/lib/junit-adapter/index.d.ts +3 -0
  44. package/lib/junit-adapter/index.js +27 -25
  45. package/lib/junit-adapter/java.d.ts +5 -0
  46. package/lib/junit-adapter/java.js +41 -53
  47. package/lib/junit-adapter/javascript.d.ts +4 -0
  48. package/lib/junit-adapter/javascript.js +30 -27
  49. package/lib/junit-adapter/python.d.ts +5 -0
  50. package/lib/junit-adapter/python.js +38 -37
  51. package/lib/junit-adapter/ruby.d.ts +4 -0
  52. package/lib/junit-adapter/ruby.js +11 -8
  53. package/lib/output.d.ts +11 -0
  54. package/lib/output.js +44 -52
  55. package/lib/package.json +3 -0
  56. package/lib/pipe/bitbucket.d.ts +23 -0
  57. package/lib/pipe/bitbucket.js +210 -229
  58. package/lib/pipe/csv.d.ts +47 -0
  59. package/lib/pipe/csv.js +113 -126
  60. package/lib/pipe/debug.d.ts +29 -0
  61. package/lib/pipe/debug.js +104 -99
  62. package/lib/pipe/github.d.ts +30 -0
  63. package/lib/pipe/github.js +186 -213
  64. package/lib/pipe/gitlab.d.ts +23 -0
  65. package/lib/pipe/gitlab.js +166 -207
  66. package/lib/pipe/html.d.ts +34 -0
  67. package/lib/pipe/html.js +260 -319
  68. package/lib/pipe/index.d.ts +1 -0
  69. package/lib/pipe/index.js +84 -66
  70. package/lib/pipe/testomatio.d.ts +70 -0
  71. package/lib/pipe/testomatio.js +413 -462
  72. package/lib/reporter-functions.d.ts +34 -0
  73. package/lib/reporter-functions.js +28 -26
  74. package/lib/reporter.d.ts +232 -0
  75. package/lib/reporter.js +34 -29
  76. package/lib/services/artifacts.d.ts +33 -0
  77. package/lib/services/artifacts.js +55 -51
  78. package/lib/services/index.d.ts +9 -0
  79. package/lib/services/index.js +14 -12
  80. package/lib/services/key-values.d.ts +27 -0
  81. package/lib/services/key-values.js +56 -53
  82. package/lib/services/logger.d.ts +64 -0
  83. package/lib/services/logger.js +227 -245
  84. package/lib/template/testomatio.hbs +651 -1366
  85. package/lib/uploader.d.ts +60 -0
  86. package/lib/uploader.js +291 -360
  87. package/lib/utils/pipe_utils.d.ts +41 -0
  88. package/lib/utils/pipe_utils.js +89 -85
  89. package/lib/utils/utils.d.ts +45 -0
  90. package/lib/utils/utils.js +347 -307
  91. package/lib/xmlReader.d.ts +92 -0
  92. package/lib/xmlReader.js +490 -529
  93. package/package.json +57 -15
  94. package/src/adapter/codecept.js +375 -0
  95. package/src/adapter/cucumber/current.js +228 -0
  96. package/src/adapter/cucumber/legacy.js +158 -0
  97. package/src/adapter/cucumber.js +4 -0
  98. package/src/adapter/cypress-plugin/index.js +112 -0
  99. package/src/adapter/jasmine.js +60 -0
  100. package/src/adapter/jest.js +107 -0
  101. package/src/adapter/mocha.cjs +2 -0
  102. package/src/adapter/mocha.js +157 -0
  103. package/src/adapter/playwright.js +250 -0
  104. package/src/adapter/vitest.js +183 -0
  105. package/src/adapter/webdriver.js +142 -0
  106. package/src/bin/cli.js +280 -0
  107. package/src/bin/reportXml.js +74 -0
  108. package/src/bin/startTest.js +123 -0
  109. package/src/bin/uploadArtifacts.js +90 -0
  110. package/src/client.js +504 -0
  111. package/src/config.js +30 -0
  112. package/src/constants.js +53 -0
  113. package/src/data-storage.js +204 -0
  114. package/src/junit-adapter/adapter.js +23 -0
  115. package/src/junit-adapter/csharp.js +16 -0
  116. package/src/junit-adapter/index.js +28 -0
  117. package/src/junit-adapter/java.js +58 -0
  118. package/src/junit-adapter/javascript.js +31 -0
  119. package/src/junit-adapter/python.js +42 -0
  120. package/src/junit-adapter/ruby.js +10 -0
  121. package/src/output.js +57 -0
  122. package/src/pipe/bitbucket.js +254 -0
  123. package/src/pipe/csv.js +140 -0
  124. package/src/pipe/debug.js +104 -0
  125. package/src/pipe/github.js +233 -0
  126. package/src/pipe/gitlab.js +229 -0
  127. package/src/pipe/html.js +374 -0
  128. package/src/pipe/index.js +71 -0
  129. package/src/pipe/testomatio.js +503 -0
  130. package/src/reporter-functions.js +55 -0
  131. package/src/reporter.cjs_decprecated +21 -0
  132. package/src/reporter.js +33 -0
  133. package/src/services/artifacts.js +59 -0
  134. package/src/services/index.js +13 -0
  135. package/src/services/key-values.js +59 -0
  136. package/src/services/logger.js +316 -0
  137. package/src/template/emptyData.svg +23 -0
  138. package/src/template/testomatio.hbs +706 -0
  139. package/src/uploader.js +371 -0
  140. package/src/utils/pipe_utils.js +119 -0
  141. package/src/utils/utils.js +383 -0
  142. package/src/xmlReader.js +562 -0
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Update and validate the filter type.
3
+ * @param {string} type - The original filter type.
4
+ * @returns {string|undefined} The updated and validated filter type.
5
+ * Returns undefined if the type is not valid.
6
+ */
7
+ export function updateFilterType(type: string): string | undefined;
8
+ /**
9
+ * Parse filter parameters from a string in the format "type=id".
10
+ * @param {string} opts - The input string containing the filter parameters.
11
+ * @returns {Object} An object containing the parsed filter parameters.
12
+ * The object has properties "type" and "id".
13
+ */
14
+ export function parseFilterParams(opts: string): any;
15
+ /**
16
+ * Generates mode request parameters based on the input params.
17
+ * @param {{type: string, id?: string, apiKey: string}} params - The input parameters for the request.
18
+ * @returns {Object|null} - An object containing the generated request parameters, or null if the type is invalid.
19
+ */
20
+ export function generateFilterRequestParams(params: {
21
+ type: string;
22
+ id?: string;
23
+ apiKey: string;
24
+ }): any | null;
25
+ /**
26
+ * Set S3 credentials from the provided artifacts object.
27
+ * @param {Object} artifacts - The artifacts object containing S3 credentials.
28
+ */
29
+ export function setS3Credentials(artifacts: any): void;
30
+ /**
31
+ * Return an emoji based on the provided status.
32
+ * @param {string} status - The status value ('passed', 'failed', or 'skipped').
33
+ * @returns {string} - An emoji corresponding to the provided status.
34
+ */
35
+ export function statusEmoji(status: string): string;
36
+ /**
37
+ * Generate a full name string based on the provided test object.
38
+ * @param {object} t - The test object.
39
+ * @returns {string} - A formatted full name string for the test object.
40
+ */
41
+ export function fullName(t: object): string;
@@ -1,53 +1,58 @@
1
- const { APP_PREFIX } = require('../constants');
2
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateFilterType = updateFilterType;
4
+ exports.parseFilterParams = parseFilterParams;
5
+ exports.generateFilterRequestParams = generateFilterRequestParams;
6
+ exports.setS3Credentials = setS3Credentials;
7
+ exports.statusEmoji = statusEmoji;
8
+ exports.fullName = fullName;
9
+ const constants_js_1 = require("../constants.js");
3
10
  /**
4
11
  * Set S3 credentials from the provided artifacts object.
5
12
  * @param {Object} artifacts - The artifacts object containing S3 credentials.
6
13
  */
7
14
  function setS3Credentials(artifacts) {
8
- if (!Object.keys(artifacts).length) return;
9
-
10
- console.log(APP_PREFIX, 'S3 credentials obtained from Testomat.io...');
11
-
12
- if (artifacts.ACCESS_KEY_ID) process.env.S3_ACCESS_KEY_ID = artifacts.ACCESS_KEY_ID;
13
- if (artifacts.SECRET_ACCESS_KEY) process.env.S3_SECRET_ACCESS_KEY = artifacts.SECRET_ACCESS_KEY;
14
- if (artifacts.REGION) process.env.S3_REGION = artifacts.REGION;
15
- if (artifacts.BUCKET) process.env.S3_BUCKET = artifacts.BUCKET;
16
- if (artifacts.SESSION_TOKEN) process.env.S3_SESSION_TOKEN = artifacts.SESSION_TOKEN;
17
- if (artifacts.presign) process.env.TESTOMATIO_PRIVATE_ARTIFACTS = '1';
18
- // endpoint is not received from the server; and shuld be empty if IAM used (credentails obtained from the testomat)
19
- process.env.S3_ENDPOINT = artifacts.ENDPOINT || '';
15
+ if (!Object.keys(artifacts).length)
16
+ return;
17
+ console.log(constants_js_1.APP_PREFIX, 'S3 credentials obtained from Testomat.io...');
18
+ if (artifacts.ACCESS_KEY_ID)
19
+ process.env.S3_ACCESS_KEY_ID = artifacts.ACCESS_KEY_ID;
20
+ if (artifacts.SECRET_ACCESS_KEY)
21
+ process.env.S3_SECRET_ACCESS_KEY = artifacts.SECRET_ACCESS_KEY;
22
+ if (artifacts.REGION)
23
+ process.env.S3_REGION = artifacts.REGION;
24
+ if (artifacts.BUCKET)
25
+ process.env.S3_BUCKET = artifacts.BUCKET;
26
+ if (artifacts.SESSION_TOKEN)
27
+ process.env.S3_SESSION_TOKEN = artifacts.SESSION_TOKEN;
28
+ if (artifacts.presign)
29
+ process.env.TESTOMATIO_PRIVATE_ARTIFACTS = '1';
30
+ // endpoint is not received from the server; and shuld be empty if IAM used (credentails obtained from the testomat)
31
+ process.env.S3_ENDPOINT = artifacts.ENDPOINT || '';
20
32
  }
21
33
  /**
22
34
  * Generates mode request parameters based on the input params.
23
- * @param {Object} params - The input parameters for the request.
24
- * @param {string} params.type - The type of the request (e.g., "tag").
25
- * @param {string} params.id - The ID associated with the request.
26
- * @param {string} params.apiKey - The API key for authentication.
35
+ * @param {{type: string, id?: string, apiKey: string}} params - The input parameters for the request.
27
36
  * @returns {Object|null} - An object containing the generated request parameters, or null if the type is invalid.
28
37
  */
29
38
  function generateFilterRequestParams(params) {
30
- const { type, id, apiKey } = params;
31
-
32
- if (!type) {
33
- return;
34
- }
35
-
36
- if (!id) {
37
- console.error(APP_PREFIX, `Please make sure your settings "${type.toUpperCase()}"= "${id}" is correct!`);
38
- return;
39
- }
40
-
41
- return {
42
- params: {
43
- type,
44
- id: encodeURIComponent(id),
45
- api_key: apiKey,
46
- },
47
- responseType: 'json',
48
- };
39
+ const { type, id, apiKey } = params;
40
+ if (!type) {
41
+ return;
42
+ }
43
+ if (!id) {
44
+ console.error(constants_js_1.APP_PREFIX, `Please make sure your settings "${type.toUpperCase()}"= "${id}" is correct!`);
45
+ return;
46
+ }
47
+ return {
48
+ params: {
49
+ type,
50
+ id: encodeURIComponent(id),
51
+ api_key: apiKey,
52
+ },
53
+ responseType: 'json',
54
+ };
49
55
  }
50
-
51
56
  /**
52
57
  * Parse filter parameters from a string in the format "type=id".
53
58
  * @param {string} opts - The input string containing the filter parameters.
@@ -55,15 +60,13 @@ function generateFilterRequestParams(params) {
55
60
  * The object has properties "type" and "id".
56
61
  */
57
62
  function parseFilterParams(opts) {
58
- const [type, id] = opts.split('=');
59
- const validType = updateFilterType(type);
60
-
61
- return {
62
- type: validType,
63
- id,
64
- };
63
+ const [type, id] = opts.split('=');
64
+ const validType = updateFilterType(type);
65
+ return {
66
+ type: validType,
67
+ id,
68
+ };
65
69
  }
66
-
67
70
  /**
68
71
  * Update and validate the filter type.
69
72
  * @param {string} type - The original filter type.
@@ -71,58 +74,59 @@ function parseFilterParams(opts) {
71
74
  * Returns undefined if the type is not valid.
72
75
  */
73
76
  function updateFilterType(type) {
74
- const typeLowerCase = type.toLowerCase();
75
-
76
- const filterTypes = ['tag-name', 'plan-id', 'label', 'jira-ticket'];
77
-
78
- const filterApi = [
79
- 'tag',
80
- 'plan',
81
- 'label',
82
- 'jira',
83
- // "ims-issue", //TODO: WIP
84
- ];
85
-
86
- if (!filterTypes.includes(typeLowerCase)) {
87
- console.log(APP_PREFIX, `❗❗❗ Invalid "filter=${type}" start settings! Available option list: ${filterTypes}`);
88
- return;
89
- }
90
-
91
- const index = filterTypes.indexOf(typeLowerCase);
92
-
93
- return index !== -1 ? filterApi[index] : undefined;
77
+ const typeLowerCase = type.toLowerCase();
78
+ const filterTypes = ['tag-name', 'plan-id', 'label', 'jira-ticket'];
79
+ const filterApi = [
80
+ 'tag',
81
+ 'plan',
82
+ 'label',
83
+ 'jira',
84
+ // "ims-issue", //TODO: WIP
85
+ ];
86
+ if (!filterTypes.includes(typeLowerCase)) {
87
+ console.log(constants_js_1.APP_PREFIX, `❗❗❗ Invalid "filter=${type}" start settings! Available option list: ${filterTypes}`);
88
+ return;
89
+ }
90
+ const index = filterTypes.indexOf(typeLowerCase);
91
+ return index !== -1 ? filterApi[index] : undefined;
94
92
  }
95
-
96
93
  /**
97
94
  * Return an emoji based on the provided status.
98
95
  * @param {string} status - The status value ('passed', 'failed', or 'skipped').
99
96
  * @returns {string} - An emoji corresponding to the provided status.
100
97
  */
101
98
  function statusEmoji(status) {
102
- if (status === 'passed') return '🟢';
103
- if (status === 'failed') return '🔴';
104
- if (status === 'skipped') return '🟡';
105
- return '';
99
+ if (status === 'passed')
100
+ return '🟢';
101
+ if (status === 'failed')
102
+ return '🔴';
103
+ if (status === 'skipped')
104
+ return '🟡';
105
+ return '';
106
106
  }
107
-
108
107
  /**
109
108
  * Generate a full name string based on the provided test object.
110
109
  * @param {object} t - The test object.
111
110
  * @returns {string} - A formatted full name string for the test object.
112
111
  */
113
112
  function fullName(t) {
114
- let line = '';
115
- if (t.suite_title) line = `${t.suite_title}: `;
116
- line += `**${t.title}**`;
117
- if (t.example) line += ` \`[${Object.values(t.example)}]\``;
118
- return line;
113
+ let line = '';
114
+ if (t.suite_title)
115
+ line = `${t.suite_title}: `;
116
+ line += `**${t.title}**`;
117
+ if (t.example)
118
+ line += ` \`[${Object.values(t.example)}]\``;
119
+ return line;
119
120
  }
120
121
 
121
- module.exports = {
122
- updateFilterType,
123
- parseFilterParams,
124
- generateFilterRequestParams,
125
- setS3Credentials,
126
- statusEmoji,
127
- fullName,
128
- };
122
+ module.exports.updateFilterType = updateFilterType;
123
+
124
+ module.exports.parseFilterParams = parseFilterParams;
125
+
126
+ module.exports.generateFilterRequestParams = generateFilterRequestParams;
127
+
128
+ module.exports.setS3Credentials = setS3Credentials;
129
+
130
+ module.exports.statusEmoji = statusEmoji;
131
+
132
+ module.exports.fullName = fullName;
@@ -0,0 +1,45 @@
1
+ export function ansiRegExp(): RegExp;
2
+ export function isSameTest(test: any, t: any): boolean;
3
+ export function fetchSourceCode(contents: any, opts?: {}): string;
4
+ export function fetchSourceCodeFromStackTrace(stack?: string): string;
5
+ export function fetchIdFromCode(code: any, opts?: {}): any;
6
+ export function fetchIdFromOutput(output: any): any;
7
+ export function fetchFilesFromStackTrace(stack?: string): string[];
8
+ export namespace fileSystem {
9
+ function createDir(dirPath: any): void;
10
+ function clearDir(dirPath: any): void;
11
+ }
12
+ export function foundedTestLog(app: any, tests: any): void;
13
+ export function formatStep(step: any, shift?: number): any;
14
+ export function getCurrentDateTime(): string;
15
+ /**
16
+ * @param {String} testTitle - Test title
17
+ *
18
+ * @returns {String|null} testId
19
+ */
20
+ export function getTestomatIdFromTestTitle(testTitle: string): string | null;
21
+ export function humanize(text: any): any;
22
+ export function isValidUrl(s: any): boolean;
23
+ /**
24
+ * @param {String} suiteTitle - suite title
25
+ *
26
+ * @returns {String|null} suiteId
27
+ */
28
+ export function parseSuite(suiteTitle: string): string | null;
29
+ export function readLatestRunId(): string;
30
+ /**
31
+ * Used to remove color codes
32
+ * @param {*} input
33
+ * @returns
34
+ */
35
+ export function removeColorCodes(input: any): any;
36
+ /**
37
+ * @param {Object} test - Test adapter object
38
+ *
39
+ * @returns {String|null} testInfo as one string
40
+ */
41
+ export function specificTestInfo(test: any): string | null;
42
+ export function storeRunId(runId: any): void;
43
+ export namespace testRunnerHelper {
44
+ function getNameOfCurrentlyRunningTest(): any;
45
+ }