@featurevisor/core 1.35.3 → 2.0.1

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 (252) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +0 -6
  3. package/coverage/clover.xml +321 -237
  4. package/coverage/coverage-final.json +8 -8
  5. package/coverage/lcov-report/index.html +77 -47
  6. package/coverage/lcov-report/lib/builder/allocator.js.html +14 -14
  7. package/coverage/lcov-report/lib/builder/index.html +16 -16
  8. package/coverage/lcov-report/lib/builder/revision.js.html +3 -3
  9. package/coverage/lcov-report/lib/builder/traffic.js.html +88 -64
  10. package/coverage/lcov-report/lib/list/index.html +116 -0
  11. package/coverage/lcov-report/lib/{tester → list}/matrix.js.html +90 -66
  12. package/coverage/lcov-report/lib/tester/helpers.js.html +295 -0
  13. package/coverage/lcov-report/lib/tester/index.html +20 -35
  14. package/coverage/lcov-report/src/builder/allocator.ts.html +2 -2
  15. package/coverage/lcov-report/src/builder/index.html +15 -15
  16. package/coverage/lcov-report/src/builder/revision.ts.html +1 -1
  17. package/coverage/lcov-report/src/builder/traffic.ts.html +96 -24
  18. package/coverage/lcov-report/src/list/index.html +116 -0
  19. package/coverage/lcov-report/src/{tester → list}/matrix.ts.html +87 -21
  20. package/coverage/lcov-report/src/tester/helpers.ts.html +313 -0
  21. package/coverage/lcov-report/src/tester/index.html +20 -35
  22. package/coverage/lcov.info +592 -436
  23. package/lib/assess-distribution/index.d.ts +1 -1
  24. package/lib/assess-distribution/index.js +102 -162
  25. package/lib/assess-distribution/index.js.map +1 -1
  26. package/lib/benchmark/index.js +87 -143
  27. package/lib/benchmark/index.js.map +1 -1
  28. package/lib/builder/allocator.d.ts +1 -1
  29. package/lib/builder/allocator.js +12 -12
  30. package/lib/builder/allocator.js.map +1 -1
  31. package/lib/builder/allocator.spec.js +22 -22
  32. package/lib/builder/allocator.spec.js.map +1 -1
  33. package/lib/builder/buildDatafile.d.ts +4 -3
  34. package/lib/builder/buildDatafile.js +311 -388
  35. package/lib/builder/buildDatafile.js.map +1 -1
  36. package/lib/builder/buildProject.d.ts +2 -1
  37. package/lib/builder/buildProject.js +96 -183
  38. package/lib/builder/buildProject.js.map +1 -1
  39. package/lib/builder/convertToV1.d.ts +10 -0
  40. package/lib/builder/convertToV1.js +119 -0
  41. package/lib/builder/convertToV1.js.map +1 -0
  42. package/lib/builder/getFeatureRanges.d.ts +1 -1
  43. package/lib/builder/getFeatureRanges.js +32 -105
  44. package/lib/builder/getFeatureRanges.js.map +1 -1
  45. package/lib/builder/hashes.d.ts +4 -0
  46. package/lib/builder/hashes.js +70 -0
  47. package/lib/builder/hashes.js.map +1 -0
  48. package/lib/builder/revision.js +2 -2
  49. package/lib/builder/revision.js.map +1 -1
  50. package/lib/builder/revision.spec.js +1 -1
  51. package/lib/builder/revision.spec.js.map +1 -1
  52. package/lib/builder/traffic.d.ts +1 -1
  53. package/lib/builder/traffic.js +57 -49
  54. package/lib/builder/traffic.js.map +1 -1
  55. package/lib/builder/traffic.spec.js +14 -14
  56. package/lib/builder/traffic.spec.js.map +1 -1
  57. package/lib/cli/cli.js +60 -129
  58. package/lib/cli/cli.js.map +1 -1
  59. package/lib/cli/plugins.js +14 -16
  60. package/lib/cli/plugins.js.map +1 -1
  61. package/lib/config/parsers.js +1 -1
  62. package/lib/config/parsers.js.map +1 -1
  63. package/lib/config/projectConfig.d.ts +8 -6
  64. package/lib/config/projectConfig.js +31 -72
  65. package/lib/config/projectConfig.js.map +1 -1
  66. package/lib/datasource/adapter.d.ts +1 -1
  67. package/lib/datasource/adapter.js +2 -5
  68. package/lib/datasource/adapter.js.map +1 -1
  69. package/lib/datasource/datasource.d.ts +2 -1
  70. package/lib/datasource/datasource.js +107 -148
  71. package/lib/datasource/datasource.js.map +1 -1
  72. package/lib/datasource/filesystemAdapter.d.ts +1 -1
  73. package/lib/datasource/filesystemAdapter.js +224 -360
  74. package/lib/datasource/filesystemAdapter.js.map +1 -1
  75. package/lib/evaluate/index.d.ts +1 -1
  76. package/lib/evaluate/index.js +120 -188
  77. package/lib/evaluate/index.js.map +1 -1
  78. package/lib/find-duplicate-segments/findDuplicateSegments.d.ts +1 -1
  79. package/lib/find-duplicate-segments/findDuplicateSegments.js +40 -128
  80. package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
  81. package/lib/find-duplicate-segments/index.js +27 -82
  82. package/lib/find-duplicate-segments/index.js.map +1 -1
  83. package/lib/find-usage/index.d.ts +7 -5
  84. package/lib/find-usage/index.js +333 -507
  85. package/lib/find-usage/index.js.map +1 -1
  86. package/lib/generate-code/index.js +36 -91
  87. package/lib/generate-code/index.js.map +1 -1
  88. package/lib/generate-code/typescript.js +117 -157
  89. package/lib/generate-code/typescript.js.map +1 -1
  90. package/lib/index.d.ts +0 -1
  91. package/lib/index.js +0 -1
  92. package/lib/index.js.map +1 -1
  93. package/lib/info/index.js +45 -133
  94. package/lib/info/index.js.map +1 -1
  95. package/lib/init/index.d.ts +1 -1
  96. package/lib/init/index.js +16 -64
  97. package/lib/init/index.js.map +1 -1
  98. package/lib/linter/attributeSchema.d.ts +21 -6
  99. package/lib/linter/attributeSchema.js +18 -4
  100. package/lib/linter/attributeSchema.js.map +1 -1
  101. package/lib/linter/checkCircularDependency.d.ts +1 -1
  102. package/lib/linter/checkCircularDependency.js +22 -80
  103. package/lib/linter/checkCircularDependency.js.map +1 -1
  104. package/lib/linter/checkPercentageExceedingSlot.d.ts +1 -1
  105. package/lib/linter/checkPercentageExceedingSlot.js +36 -76
  106. package/lib/linter/checkPercentageExceedingSlot.js.map +1 -1
  107. package/lib/linter/conditionSchema.d.ts +1 -1
  108. package/lib/linter/conditionSchema.js +89 -41
  109. package/lib/linter/conditionSchema.js.map +1 -1
  110. package/lib/linter/featureSchema.d.ts +345 -197
  111. package/lib/linter/featureSchema.js +313 -172
  112. package/lib/linter/featureSchema.js.map +1 -1
  113. package/lib/linter/groupSchema.js +6 -6
  114. package/lib/linter/groupSchema.js.map +1 -1
  115. package/lib/linter/lintProject.js +306 -480
  116. package/lib/linter/lintProject.js.map +1 -1
  117. package/lib/linter/printError.js +7 -7
  118. package/lib/linter/printError.js.map +1 -1
  119. package/lib/linter/segmentSchema.js +2 -2
  120. package/lib/linter/segmentSchema.js.map +1 -1
  121. package/lib/linter/testSchema.d.ts +155 -3
  122. package/lib/linter/testSchema.js +47 -17
  123. package/lib/linter/testSchema.js.map +1 -1
  124. package/lib/list/index.d.ts +1 -0
  125. package/lib/list/index.js +349 -517
  126. package/lib/list/index.js.map +1 -1
  127. package/lib/{tester → list}/matrix.d.ts +1 -1
  128. package/lib/{tester → list}/matrix.js +50 -42
  129. package/lib/list/matrix.js.map +1 -0
  130. package/lib/{tester → list}/matrix.spec.js +7 -7
  131. package/lib/list/matrix.spec.js.map +1 -0
  132. package/lib/site/exportSite.js +25 -71
  133. package/lib/site/exportSite.js.map +1 -1
  134. package/lib/site/generateHistory.d.ts +1 -1
  135. package/lib/site/generateHistory.js +26 -82
  136. package/lib/site/generateHistory.js.map +1 -1
  137. package/lib/site/generateSiteSearchIndex.d.ts +1 -1
  138. package/lib/site/generateSiteSearchIndex.js +182 -259
  139. package/lib/site/generateSiteSearchIndex.js.map +1 -1
  140. package/lib/site/getLastModifiedFromHistory.d.ts +1 -1
  141. package/lib/site/getLastModifiedFromHistory.js +2 -2
  142. package/lib/site/getLastModifiedFromHistory.js.map +1 -1
  143. package/lib/site/getOwnerAndRepoFromUrl.js +6 -6
  144. package/lib/site/getOwnerAndRepoFromUrl.js.map +1 -1
  145. package/lib/site/getRelativePaths.js +7 -7
  146. package/lib/site/getRelativePaths.js.map +1 -1
  147. package/lib/site/getRepoDetails.js +20 -20
  148. package/lib/site/getRepoDetails.js.map +1 -1
  149. package/lib/site/index.js +25 -73
  150. package/lib/site/index.js.map +1 -1
  151. package/lib/site/serveSite.js +10 -10
  152. package/lib/site/serveSite.js.map +1 -1
  153. package/lib/tester/helpers.d.ts +2 -0
  154. package/lib/tester/helpers.js +71 -0
  155. package/lib/tester/helpers.js.map +1 -0
  156. package/lib/tester/helpers.spec.js +115 -0
  157. package/lib/tester/helpers.spec.js.map +1 -0
  158. package/lib/tester/index.d.ts +0 -1
  159. package/lib/tester/index.js +0 -1
  160. package/lib/tester/index.js.map +1 -1
  161. package/lib/tester/prettyDuration.js +11 -11
  162. package/lib/tester/prettyDuration.js.map +1 -1
  163. package/lib/tester/printTestResult.d.ts +1 -1
  164. package/lib/tester/printTestResult.js +35 -15
  165. package/lib/tester/printTestResult.js.map +1 -1
  166. package/lib/tester/testFeature.d.ts +4 -2
  167. package/lib/tester/testFeature.js +264 -226
  168. package/lib/tester/testFeature.js.map +1 -1
  169. package/lib/tester/testProject.d.ts +3 -7
  170. package/lib/tester/testProject.js +145 -246
  171. package/lib/tester/testProject.js.map +1 -1
  172. package/lib/tester/testSegment.d.ts +5 -2
  173. package/lib/tester/testSegment.js +65 -102
  174. package/lib/tester/testSegment.js.map +1 -1
  175. package/lib/utils/extractKeys.d.ts +2 -1
  176. package/lib/utils/extractKeys.js +57 -12
  177. package/lib/utils/extractKeys.js.map +1 -1
  178. package/lib/utils/git.d.ts +1 -1
  179. package/lib/utils/git.js +23 -23
  180. package/lib/utils/git.js.map +1 -1
  181. package/lib/utils/pretty.js +2 -4
  182. package/lib/utils/pretty.js.map +1 -1
  183. package/package.json +5 -6
  184. package/src/assess-distribution/index.ts +3 -2
  185. package/src/benchmark/index.ts +3 -3
  186. package/src/builder/allocator.spec.ts +1 -1
  187. package/src/builder/allocator.ts +1 -1
  188. package/src/builder/buildDatafile.ts +161 -124
  189. package/src/builder/buildProject.ts +6 -3
  190. package/src/builder/convertToV1.ts +166 -0
  191. package/src/builder/getFeatureRanges.ts +1 -1
  192. package/src/builder/hashes.ts +109 -0
  193. package/src/builder/traffic.ts +40 -16
  194. package/src/cli/cli.ts +1 -1
  195. package/src/cli/plugins.ts +0 -2
  196. package/src/config/projectConfig.ts +13 -10
  197. package/src/datasource/adapter.ts +1 -1
  198. package/src/datasource/datasource.ts +23 -2
  199. package/src/datasource/filesystemAdapter.ts +11 -12
  200. package/src/evaluate/index.ts +7 -6
  201. package/src/find-duplicate-segments/findDuplicateSegments.ts +1 -1
  202. package/src/find-usage/index.ts +111 -44
  203. package/src/generate-code/index.ts +1 -3
  204. package/src/generate-code/typescript.ts +7 -29
  205. package/src/index.ts +0 -1
  206. package/src/info/index.ts +2 -2
  207. package/src/init/index.ts +2 -2
  208. package/src/linter/attributeSchema.ts +18 -2
  209. package/src/linter/checkCircularDependency.ts +1 -1
  210. package/src/linter/checkPercentageExceedingSlot.ts +28 -8
  211. package/src/linter/conditionSchema.ts +66 -10
  212. package/src/linter/featureSchema.ts +312 -116
  213. package/src/linter/lintProject.ts +9 -4
  214. package/src/linter/testSchema.ts +42 -3
  215. package/src/list/index.ts +18 -30
  216. package/src/{tester → list}/matrix.ts +33 -11
  217. package/src/site/exportSite.ts +2 -4
  218. package/src/site/generateHistory.ts +1 -1
  219. package/src/site/generateSiteSearchIndex.ts +58 -50
  220. package/src/site/getLastModifiedFromHistory.ts +1 -1
  221. package/src/tester/helpers.spec.ts +149 -0
  222. package/src/tester/helpers.ts +76 -0
  223. package/src/tester/index.ts +0 -1
  224. package/src/tester/printTestResult.ts +25 -3
  225. package/src/tester/testFeature.ts +270 -124
  226. package/src/tester/testProject.ts +28 -49
  227. package/src/tester/testSegment.ts +48 -40
  228. package/src/utils/extractKeys.ts +58 -1
  229. package/src/utils/git.ts +1 -1
  230. package/tsconfig.cjs.json +1 -0
  231. package/coverage/lcov-report/lib/tester/checkIfObjectsAreEqual.js.html +0 -151
  232. package/coverage/lcov-report/src/tester/checkIfObjectsAreEqual.ts.html +0 -157
  233. package/lib/restore/index.d.ts +0 -4
  234. package/lib/restore/index.js +0 -91
  235. package/lib/restore/index.js.map +0 -1
  236. package/lib/tester/checkIfArraysAreEqual.d.ts +0 -1
  237. package/lib/tester/checkIfArraysAreEqual.js +0 -18
  238. package/lib/tester/checkIfArraysAreEqual.js.map +0 -1
  239. package/lib/tester/checkIfObjectsAreEqual.d.ts +0 -1
  240. package/lib/tester/checkIfObjectsAreEqual.js +0 -23
  241. package/lib/tester/checkIfObjectsAreEqual.js.map +0 -1
  242. package/lib/tester/checkIfObjectsAreEqual.spec.js +0 -26
  243. package/lib/tester/checkIfObjectsAreEqual.spec.js.map +0 -1
  244. package/lib/tester/matrix.js.map +0 -1
  245. package/lib/tester/matrix.spec.js.map +0 -1
  246. package/src/restore/index.ts +0 -42
  247. package/src/tester/checkIfArraysAreEqual.ts +0 -16
  248. package/src/tester/checkIfObjectsAreEqual.spec.ts +0 -31
  249. package/src/tester/checkIfObjectsAreEqual.ts +0 -24
  250. /package/lib/{tester → list}/matrix.spec.d.ts +0 -0
  251. /package/lib/tester/{checkIfObjectsAreEqual.spec.d.ts → helpers.spec.d.ts} +0 -0
  252. /package/src/{tester → list}/matrix.spec.ts +0 -0
@@ -1,258 +1,157 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.testPlugin = void 0;
40
4
  exports.executeTest = executeTest;
41
5
  exports.testProject = testProject;
42
- var fs = require("fs");
43
- var path = require("path");
44
- var testSegment_1 = require("./testSegment");
45
- var testFeature_1 = require("./testFeature");
46
- var cliFormat_1 = require("./cliFormat");
47
- var prettyDuration_1 = require("./prettyDuration");
48
- var printTestResult_1 = require("./printTestResult");
49
- var builder_1 = require("../builder");
50
- var config_1 = require("../config");
51
- function executeTest(testFile, deps, options, patterns, datafileContentByEnvironment) {
52
- return __awaiter(this, void 0, void 0, function () {
53
- var datasource, projectConfig, rootDirectoryPath, relativeTestFilePath, t, tAsSegment, tAsFeature, key, type, executionResult, testResult;
54
- return __generator(this, function (_a) {
55
- switch (_a.label) {
56
- case 0:
57
- datasource = deps.datasource, projectConfig = deps.projectConfig, rootDirectoryPath = deps.rootDirectoryPath;
58
- relativeTestFilePath = path
59
- .join(projectConfig.testsDirectoryPath, datasource.getTestSpecName(testFile))
60
- .replace(rootDirectoryPath + path.sep, "");
61
- return [4 /*yield*/, datasource.readTest(testFile)];
62
- case 1:
63
- t = _a.sent();
64
- tAsSegment = t;
65
- tAsFeature = t;
66
- key = tAsSegment.segment || tAsFeature.feature;
67
- type = tAsSegment.segment ? "segment" : "feature";
68
- executionResult = {
69
- passed: true,
70
- assertionsCount: {
71
- passed: 0,
72
- failed: 0,
73
- },
74
- };
75
- if (!key) {
76
- console.error(" => Invalid test: ".concat(JSON.stringify(t)));
77
- executionResult.passed = false;
78
- return [2 /*return*/, executionResult];
79
- }
80
- if (patterns.keyPattern && !patterns.keyPattern.test(key)) {
81
- return [2 /*return*/];
82
- }
83
- if (!(type === "segment")) return [3 /*break*/, 3];
84
- return [4 /*yield*/, (0, testSegment_1.testSegment)(datasource, tAsSegment, patterns)];
85
- case 2:
86
- testResult = _a.sent();
87
- return [3 /*break*/, 5];
88
- case 3: return [4 /*yield*/, (0, testFeature_1.testFeature)(datasource, projectConfig, tAsFeature, options, patterns, datafileContentByEnvironment)];
89
- case 4:
90
- testResult = _a.sent();
91
- _a.label = 5;
92
- case 5:
93
- if (!options.onlyFailures) {
94
- // show all
95
- (0, printTestResult_1.printTestResult)(testResult, relativeTestFilePath, rootDirectoryPath);
96
- }
97
- else {
98
- // show failed only
99
- if (!testResult.passed) {
100
- (0, printTestResult_1.printTestResult)(testResult, relativeTestFilePath, rootDirectoryPath);
101
- }
102
- }
103
- if (!testResult.passed) {
104
- executionResult.passed = false;
105
- executionResult.assertionsCount.failed = testResult.assertions.filter(function (a) { return !a.passed; }).length;
106
- executionResult.assertionsCount.passed +=
107
- testResult.assertions.length - executionResult.assertionsCount.failed;
108
- }
109
- else {
110
- executionResult.assertionsCount.passed = testResult.assertions.length;
111
- }
112
- return [2 /*return*/, executionResult];
113
- }
114
- });
115
- });
6
+ const fs = require("fs");
7
+ const testSegment_1 = require("./testSegment");
8
+ const testFeature_1 = require("./testFeature");
9
+ const cliFormat_1 = require("./cliFormat");
10
+ const prettyDuration_1 = require("./prettyDuration");
11
+ const printTestResult_1 = require("./printTestResult");
12
+ const builder_1 = require("../builder");
13
+ const config_1 = require("../config");
14
+ const list_1 = require("../list");
15
+ async function executeTest(test, deps, options, datafileContentByEnvironment) {
16
+ const { datasource, projectConfig, rootDirectoryPath } = deps;
17
+ const extension = datasource.getExtension();
18
+ const relativeTestFilePath = test.key + (extension ? `.${extension}` : "");
19
+ const tAsSegment = test;
20
+ const tAsFeature = test;
21
+ const key = tAsSegment.segment || tAsFeature.feature;
22
+ const type = tAsSegment.segment ? "segment" : "feature";
23
+ const executionResult = {
24
+ passed: true,
25
+ assertionsCount: {
26
+ passed: 0,
27
+ failed: 0,
28
+ },
29
+ };
30
+ if (!key) {
31
+ console.error(` => Invalid test: ${JSON.stringify(test)}`);
32
+ executionResult.passed = false;
33
+ return executionResult;
34
+ }
35
+ let testResult;
36
+ if (type === "segment") {
37
+ testResult = await (0, testSegment_1.testSegment)(datasource, tAsSegment, options);
38
+ }
39
+ else {
40
+ testResult = await (0, testFeature_1.testFeature)(datasource, projectConfig, tAsFeature, options, datafileContentByEnvironment);
41
+ }
42
+ if (!options.onlyFailures) {
43
+ // show all
44
+ (0, printTestResult_1.printTestResult)(testResult, relativeTestFilePath, rootDirectoryPath);
45
+ }
46
+ else {
47
+ // show failed only
48
+ if (!testResult.passed) {
49
+ (0, printTestResult_1.printTestResult)(testResult, relativeTestFilePath, rootDirectoryPath);
50
+ }
51
+ }
52
+ if (!testResult.passed) {
53
+ executionResult.passed = false;
54
+ executionResult.assertionsCount.failed = testResult.assertions.filter((a) => !a.passed).length;
55
+ executionResult.assertionsCount.passed +=
56
+ testResult.assertions.length - executionResult.assertionsCount.failed;
57
+ }
58
+ else {
59
+ executionResult.assertionsCount.passed = testResult.assertions.length;
60
+ }
61
+ return executionResult;
116
62
  }
117
- function testProject(deps_1) {
118
- return __awaiter(this, arguments, void 0, function (deps, options) {
119
- var projectConfig, datasource, hasError, testFiles, startTime, patterns, passedTestsCount, failedTestsCount, passedAssertionsCount, failedAssertionsCount, datafileContentByEnvironment, _i, _a, environment, existingState, datafileContent, existingState, datafileContent, _b, testFiles_1, testFile, executionResult, diffInMs, testSpecsMessage, testAssertionsMessage;
120
- if (options === void 0) { options = {}; }
121
- return __generator(this, function (_c) {
122
- switch (_c.label) {
123
- case 0:
124
- projectConfig = deps.projectConfig, datasource = deps.datasource;
125
- hasError = false;
126
- if (!fs.existsSync(projectConfig.testsDirectoryPath)) {
127
- console.error("Tests directory does not exist: ".concat(projectConfig.testsDirectoryPath));
128
- hasError = true;
129
- return [2 /*return*/, hasError];
130
- }
131
- return [4 /*yield*/, datasource.listTests()];
132
- case 1:
133
- testFiles = _c.sent();
134
- if (testFiles.length === 0) {
135
- console.error("No tests found in: ".concat(projectConfig.testsDirectoryPath));
136
- hasError = true;
137
- return [2 /*return*/, hasError];
138
- }
139
- startTime = Date.now();
140
- patterns = {
141
- keyPattern: options.keyPattern ? new RegExp(options.keyPattern) : undefined,
142
- assertionPattern: options.assertionPattern ? new RegExp(options.assertionPattern) : undefined,
143
- };
144
- passedTestsCount = 0;
145
- failedTestsCount = 0;
146
- passedAssertionsCount = 0;
147
- failedAssertionsCount = 0;
148
- datafileContentByEnvironment = new Map();
149
- if (!Array.isArray(projectConfig.environments)) return [3 /*break*/, 6];
150
- _i = 0, _a = projectConfig.environments;
151
- _c.label = 2;
152
- case 2:
153
- if (!(_i < _a.length)) return [3 /*break*/, 6];
154
- environment = _a[_i];
155
- return [4 /*yield*/, datasource.readState(environment)];
156
- case 3:
157
- existingState = _c.sent();
158
- return [4 /*yield*/, (0, builder_1.buildDatafile)(projectConfig, datasource, {
159
- schemaVersion: options.schemaVersion || config_1.SCHEMA_VERSION,
160
- revision: "include-all-features",
161
- environment: environment,
162
- inflate: options.inflate,
163
- }, existingState)];
164
- case 4:
165
- datafileContent = _c.sent();
166
- datafileContentByEnvironment.set(environment, datafileContent);
167
- _c.label = 5;
168
- case 5:
169
- _i++;
170
- return [3 /*break*/, 2];
171
- case 6:
172
- if (!(projectConfig.environments === false)) return [3 /*break*/, 9];
173
- return [4 /*yield*/, datasource.readState(false)];
174
- case 7:
175
- existingState = _c.sent();
176
- return [4 /*yield*/, (0, builder_1.buildDatafile)(projectConfig, datasource, {
177
- schemaVersion: options.schemaVersion || config_1.SCHEMA_VERSION,
178
- revision: "include-all-features",
179
- environment: false,
180
- inflate: options.inflate,
181
- }, existingState)];
182
- case 8:
183
- datafileContent = _c.sent();
184
- datafileContentByEnvironment.set(false, datafileContent);
185
- _c.label = 9;
186
- case 9:
187
- _b = 0, testFiles_1 = testFiles;
188
- _c.label = 10;
189
- case 10:
190
- if (!(_b < testFiles_1.length)) return [3 /*break*/, 13];
191
- testFile = testFiles_1[_b];
192
- return [4 /*yield*/, executeTest(testFile, deps, options, patterns, datafileContentByEnvironment)];
193
- case 11:
194
- executionResult = _c.sent();
195
- if (!executionResult) {
196
- return [3 /*break*/, 12];
197
- }
198
- if (executionResult.passed) {
199
- passedTestsCount += 1;
200
- }
201
- else {
202
- hasError = true;
203
- failedTestsCount += 1;
204
- }
205
- passedAssertionsCount += executionResult.assertionsCount.passed;
206
- failedAssertionsCount += executionResult.assertionsCount.failed;
207
- _c.label = 12;
208
- case 12:
209
- _b++;
210
- return [3 /*break*/, 10];
211
- case 13:
212
- diffInMs = Date.now() - startTime;
213
- if (options.onlyFailures !== true || hasError) {
214
- console.log("\n---");
215
- }
216
- console.log("");
217
- testSpecsMessage = "Test specs: ".concat(passedTestsCount, " passed, ").concat(failedTestsCount, " failed");
218
- testAssertionsMessage = "Assertions: ".concat(passedAssertionsCount, " passed, ").concat(failedAssertionsCount, " failed");
219
- if (hasError) {
220
- console.log(cliFormat_1.CLI_FORMAT_RED, testSpecsMessage);
221
- console.log(cliFormat_1.CLI_FORMAT_RED, testAssertionsMessage);
222
- }
223
- else {
224
- console.log(cliFormat_1.CLI_FORMAT_GREEN, testSpecsMessage);
225
- console.log(cliFormat_1.CLI_FORMAT_GREEN, testAssertionsMessage);
226
- }
227
- console.log(cliFormat_1.CLI_FORMAT_BOLD, "Time: ".concat((0, prettyDuration_1.prettyDuration)(diffInMs)));
228
- return [2 /*return*/, hasError];
229
- }
230
- });
231
- });
63
+ async function testProject(deps, testOptions = {}) {
64
+ const { rootDirectoryPath, projectConfig, datasource, options } = deps;
65
+ let hasError = false;
66
+ if (!fs.existsSync(projectConfig.testsDirectoryPath)) {
67
+ console.error(`Tests directory does not exist: ${projectConfig.testsDirectoryPath}`);
68
+ hasError = true;
69
+ return hasError;
70
+ }
71
+ const startTime = Date.now();
72
+ let passedTestsCount = 0;
73
+ let failedTestsCount = 0;
74
+ let passedAssertionsCount = 0;
75
+ let failedAssertionsCount = 0;
76
+ const datafileContentByEnvironment = new Map();
77
+ // with environments
78
+ if (Array.isArray(projectConfig.environments)) {
79
+ for (const environment of projectConfig.environments) {
80
+ const existingState = await datasource.readState(environment);
81
+ const datafileContent = await (0, builder_1.buildDatafile)(projectConfig, datasource, {
82
+ schemaVersion: options.schemaVersion || config_1.SCHEMA_VERSION,
83
+ revision: "include-all-features",
84
+ environment: environment,
85
+ inflate: options.inflate,
86
+ }, existingState);
87
+ datafileContentByEnvironment.set(environment, datafileContent);
88
+ }
89
+ }
90
+ // no environments
91
+ if (projectConfig.environments === false) {
92
+ const existingState = await datasource.readState(false);
93
+ const datafileContent = await (0, builder_1.buildDatafile)(projectConfig, datasource, {
94
+ schemaVersion: options.schemaVersion || config_1.SCHEMA_VERSION,
95
+ revision: "include-all-features",
96
+ environment: false,
97
+ inflate: options.inflate,
98
+ }, existingState);
99
+ datafileContentByEnvironment.set(false, datafileContent);
100
+ }
101
+ const tests = await (0, list_1.listEntities)({
102
+ rootDirectoryPath,
103
+ projectConfig,
104
+ datasource,
105
+ options: {
106
+ ...testOptions,
107
+ applyMatrix: true,
108
+ },
109
+ }, "test");
110
+ for (const test of tests) {
111
+ const executionResult = await executeTest(test, deps, options, datafileContentByEnvironment);
112
+ if (!executionResult) {
113
+ continue;
114
+ }
115
+ if (executionResult.passed) {
116
+ passedTestsCount += 1;
117
+ }
118
+ else {
119
+ hasError = true;
120
+ failedTestsCount += 1;
121
+ }
122
+ passedAssertionsCount += executionResult.assertionsCount.passed;
123
+ failedAssertionsCount += executionResult.assertionsCount.failed;
124
+ }
125
+ const diffInMs = Date.now() - startTime;
126
+ if (options.onlyFailures !== true || hasError) {
127
+ console.log("\n---");
128
+ }
129
+ console.log("");
130
+ const testSpecsMessage = `Test specs: ${passedTestsCount} passed, ${failedTestsCount} failed`;
131
+ const testAssertionsMessage = `Assertions: ${passedAssertionsCount} passed, ${failedAssertionsCount} failed`;
132
+ if (hasError) {
133
+ console.log(cliFormat_1.CLI_FORMAT_RED, testSpecsMessage);
134
+ console.log(cliFormat_1.CLI_FORMAT_RED, testAssertionsMessage);
135
+ }
136
+ else {
137
+ console.log(cliFormat_1.CLI_FORMAT_GREEN, testSpecsMessage);
138
+ console.log(cliFormat_1.CLI_FORMAT_GREEN, testAssertionsMessage);
139
+ }
140
+ console.log(cliFormat_1.CLI_FORMAT_BOLD, `Time: ${(0, prettyDuration_1.prettyDuration)(diffInMs)}`);
141
+ return hasError;
232
142
  }
233
143
  exports.testPlugin = {
234
144
  command: "test",
235
- handler: function (_a) {
236
- return __awaiter(this, arguments, void 0, function (_b) {
237
- var hasError;
238
- var rootDirectoryPath = _b.rootDirectoryPath, projectConfig = _b.projectConfig, datasource = _b.datasource, parsed = _b.parsed;
239
- return __generator(this, function (_c) {
240
- switch (_c.label) {
241
- case 0: return [4 /*yield*/, testProject({
242
- rootDirectoryPath: rootDirectoryPath,
243
- projectConfig: projectConfig,
244
- datasource: datasource,
245
- options: parsed,
246
- }, parsed)];
247
- case 1:
248
- hasError = _c.sent();
249
- if (hasError) {
250
- return [2 /*return*/, false];
251
- }
252
- return [2 /*return*/];
253
- }
254
- });
255
- });
145
+ handler: async function ({ rootDirectoryPath, projectConfig, datasource, parsed }) {
146
+ const hasError = await testProject({
147
+ rootDirectoryPath,
148
+ projectConfig,
149
+ datasource,
150
+ options: parsed,
151
+ }, parsed);
152
+ if (hasError) {
153
+ return false;
154
+ }
256
155
  },
257
156
  examples: [
258
157
  {
@@ -1 +1 @@
1
- {"version":3,"file":"testProject.js","sourceRoot":"","sources":["../../src/tester/testProject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testProject.js","sourceRoot":"","sources":["../../src/tester/testProject.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
- import { TestSegment, TestResult } from "@featurevisor/types";
1
+ import type { TestSegment, TestResult } from "@featurevisor/types";
2
2
  import { Datasource } from "../datasource";
3
- export declare function testSegment(datasource: Datasource, test: TestSegment, patterns: any): Promise<TestResult>;
3
+ export declare function testSegment(datasource: Datasource, test: TestSegment, options?: {
4
+ verbose?: boolean;
5
+ quiet?: boolean;
6
+ }): Promise<TestResult>;