hotstaq 0.5.24

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 (299) hide show
  1. package/.eslintignore +17 -0
  2. package/.eslintrc.js +11 -0
  3. package/.vscode/launch.json +199 -0
  4. package/.vscode/settings.json +2 -0
  5. package/.vscode/tasks.json +78 -0
  6. package/CONTRIBUTING.md +157 -0
  7. package/README.md +126 -0
  8. package/bin/hotstaq +3 -0
  9. package/bin/hotstaq.cmd +1 -0
  10. package/build/src/Hot.d.ts +167 -0
  11. package/build/src/Hot.d.ts.map +1 -0
  12. package/build/src/Hot.js +365 -0
  13. package/build/src/Hot.js.map +1 -0
  14. package/build/src/HotAPI.d.ts +130 -0
  15. package/build/src/HotAPI.d.ts.map +1 -0
  16. package/build/src/HotAPI.js +353 -0
  17. package/build/src/HotAPI.js.map +1 -0
  18. package/build/src/HotAgentAPI.d.ts +22 -0
  19. package/build/src/HotAgentAPI.d.ts.map +1 -0
  20. package/build/src/HotAgentAPI.js +85 -0
  21. package/build/src/HotAgentAPI.js.map +1 -0
  22. package/build/src/HotAgentRoute.d.ts +17 -0
  23. package/build/src/HotAgentRoute.d.ts.map +1 -0
  24. package/build/src/HotAgentRoute.js +109 -0
  25. package/build/src/HotAgentRoute.js.map +1 -0
  26. package/build/src/HotBuilder.d.ts +52 -0
  27. package/build/src/HotBuilder.d.ts.map +1 -0
  28. package/build/src/HotBuilder.js +239 -0
  29. package/build/src/HotBuilder.js.map +1 -0
  30. package/build/src/HotClient.d.ts +31 -0
  31. package/build/src/HotClient.d.ts.map +1 -0
  32. package/build/src/HotClient.js +19 -0
  33. package/build/src/HotClient.js.map +1 -0
  34. package/build/src/HotComponent.d.ts +118 -0
  35. package/build/src/HotComponent.d.ts.map +1 -0
  36. package/build/src/HotComponent.js +89 -0
  37. package/build/src/HotComponent.js.map +1 -0
  38. package/build/src/HotCreator.d.ts +92 -0
  39. package/build/src/HotCreator.d.ts.map +1 -0
  40. package/build/src/HotCreator.js +465 -0
  41. package/build/src/HotCreator.js.map +1 -0
  42. package/build/src/HotDB.d.ts +69 -0
  43. package/build/src/HotDB.d.ts.map +1 -0
  44. package/build/src/HotDB.js +29 -0
  45. package/build/src/HotDB.js.map +1 -0
  46. package/build/src/HotDBConnectionInterface.d.ts +40 -0
  47. package/build/src/HotDBConnectionInterface.d.ts.map +1 -0
  48. package/build/src/HotDBConnectionInterface.js +3 -0
  49. package/build/src/HotDBConnectionInterface.js.map +1 -0
  50. package/build/src/HotFile.d.ts +134 -0
  51. package/build/src/HotFile.d.ts.map +1 -0
  52. package/build/src/HotFile.js +454 -0
  53. package/build/src/HotFile.js.map +1 -0
  54. package/build/src/HotHTTPServer.d.ts +162 -0
  55. package/build/src/HotHTTPServer.d.ts.map +1 -0
  56. package/build/src/HotHTTPServer.js +863 -0
  57. package/build/src/HotHTTPServer.js.map +1 -0
  58. package/build/src/HotIO.d.ts +39 -0
  59. package/build/src/HotIO.d.ts.map +1 -0
  60. package/build/src/HotIO.js +195 -0
  61. package/build/src/HotIO.js.map +1 -0
  62. package/build/src/HotLog.d.ts +60 -0
  63. package/build/src/HotLog.d.ts.map +1 -0
  64. package/build/src/HotLog.js +126 -0
  65. package/build/src/HotLog.js.map +1 -0
  66. package/build/src/HotPage.d.ts +125 -0
  67. package/build/src/HotPage.d.ts.map +1 -0
  68. package/build/src/HotPage.js +178 -0
  69. package/build/src/HotPage.js.map +1 -0
  70. package/build/src/HotRoute.d.ts +82 -0
  71. package/build/src/HotRoute.d.ts.map +1 -0
  72. package/build/src/HotRoute.js +83 -0
  73. package/build/src/HotRoute.js.map +1 -0
  74. package/build/src/HotRouteMethod.d.ts +129 -0
  75. package/build/src/HotRouteMethod.d.ts.map +1 -0
  76. package/build/src/HotRouteMethod.js +84 -0
  77. package/build/src/HotRouteMethod.js.map +1 -0
  78. package/build/src/HotServer.d.ts +152 -0
  79. package/build/src/HotServer.d.ts.map +1 -0
  80. package/build/src/HotServer.js +109 -0
  81. package/build/src/HotServer.js.map +1 -0
  82. package/build/src/HotSetAsWeb.d.ts +2 -0
  83. package/build/src/HotSetAsWeb.d.ts.map +1 -0
  84. package/build/src/HotSetAsWeb.js +5 -0
  85. package/build/src/HotSetAsWeb.js.map +1 -0
  86. package/build/src/HotStaq.d.ts +601 -0
  87. package/build/src/HotStaq.d.ts.map +1 -0
  88. package/build/src/HotStaq.js +1258 -0
  89. package/build/src/HotStaq.js.map +1 -0
  90. package/build/src/HotStaqWeb.d.ts +18 -0
  91. package/build/src/HotStaqWeb.d.ts.map +1 -0
  92. package/build/src/HotStaqWeb.js +44 -0
  93. package/build/src/HotStaqWeb.js.map +1 -0
  94. package/build/src/HotTestDriver.d.ts +63 -0
  95. package/build/src/HotTestDriver.d.ts.map +1 -0
  96. package/build/src/HotTestDriver.js +187 -0
  97. package/build/src/HotTestDriver.js.map +1 -0
  98. package/build/src/HotTestElement.d.ts +71 -0
  99. package/build/src/HotTestElement.d.ts.map +1 -0
  100. package/build/src/HotTestElement.js +37 -0
  101. package/build/src/HotTestElement.js.map +1 -0
  102. package/build/src/HotTestMap.d.ts +83 -0
  103. package/build/src/HotTestMap.d.ts.map +1 -0
  104. package/build/src/HotTestMap.js +58 -0
  105. package/build/src/HotTestMap.js.map +1 -0
  106. package/build/src/HotTestSeleniumDriver.d.ts +82 -0
  107. package/build/src/HotTestSeleniumDriver.d.ts.map +1 -0
  108. package/build/src/HotTestSeleniumDriver.js +398 -0
  109. package/build/src/HotTestSeleniumDriver.js.map +1 -0
  110. package/build/src/HotTester.d.ts +188 -0
  111. package/build/src/HotTester.d.ts.map +1 -0
  112. package/build/src/HotTester.js +623 -0
  113. package/build/src/HotTester.js.map +1 -0
  114. package/build/src/HotTesterAPI.d.ts +15 -0
  115. package/build/src/HotTesterAPI.d.ts.map +1 -0
  116. package/build/src/HotTesterAPI.js +161 -0
  117. package/build/src/HotTesterAPI.js.map +1 -0
  118. package/build/src/HotTesterMocha.d.ts +50 -0
  119. package/build/src/HotTesterMocha.d.ts.map +1 -0
  120. package/build/src/HotTesterMocha.js +205 -0
  121. package/build/src/HotTesterMocha.js.map +1 -0
  122. package/build/src/HotTesterMochaSelenium.d.ts +70 -0
  123. package/build/src/HotTesterMochaSelenium.d.ts.map +1 -0
  124. package/build/src/HotTesterMochaSelenium.js +257 -0
  125. package/build/src/HotTesterMochaSelenium.js.map +1 -0
  126. package/build/src/HotTesterServer.d.ts +114 -0
  127. package/build/src/HotTesterServer.d.ts.map +1 -0
  128. package/build/src/HotTesterServer.js +575 -0
  129. package/build/src/HotTesterServer.js.map +1 -0
  130. package/build/src/api.d.ts +33 -0
  131. package/build/src/api.d.ts.map +1 -0
  132. package/build/src/api.js +78 -0
  133. package/build/src/api.js.map +1 -0
  134. package/build/src/cli.d.ts +2 -0
  135. package/build/src/cli.d.ts.map +1 -0
  136. package/build/src/cli.js +935 -0
  137. package/build/src/cli.js.map +1 -0
  138. package/build/src/schemas/HotDBInflux.d.ts +63 -0
  139. package/build/src/schemas/HotDBInflux.d.ts.map +1 -0
  140. package/build/src/schemas/HotDBInflux.js +239 -0
  141. package/build/src/schemas/HotDBInflux.js.map +1 -0
  142. package/build/src/schemas/HotDBMigration.d.ts +19 -0
  143. package/build/src/schemas/HotDBMigration.d.ts.map +1 -0
  144. package/build/src/schemas/HotDBMigration.js +15 -0
  145. package/build/src/schemas/HotDBMigration.js.map +1 -0
  146. package/build/src/schemas/HotDBMySQL.d.ts +65 -0
  147. package/build/src/schemas/HotDBMySQL.d.ts.map +1 -0
  148. package/build/src/schemas/HotDBMySQL.js +387 -0
  149. package/build/src/schemas/HotDBMySQL.js.map +1 -0
  150. package/build/src/schemas/HotDBSchema.d.ts +15 -0
  151. package/build/src/schemas/HotDBSchema.d.ts.map +1 -0
  152. package/build/src/schemas/HotDBSchema.js +19 -0
  153. package/build/src/schemas/HotDBSchema.js.map +1 -0
  154. package/build/src/schemas/influx/InfluxSchema.d.ts +14 -0
  155. package/build/src/schemas/influx/InfluxSchema.d.ts.map +1 -0
  156. package/build/src/schemas/influx/InfluxSchema.js +33 -0
  157. package/build/src/schemas/influx/InfluxSchema.js.map +1 -0
  158. package/build/src/schemas/mysql/MySQLSchema.d.ts +39 -0
  159. package/build/src/schemas/mysql/MySQLSchema.d.ts.map +1 -0
  160. package/build/src/schemas/mysql/MySQLSchema.js +151 -0
  161. package/build/src/schemas/mysql/MySQLSchema.js.map +1 -0
  162. package/build/src/schemas/mysql/MySQLSchemaField.d.ts +168 -0
  163. package/build/src/schemas/mysql/MySQLSchemaField.d.ts.map +1 -0
  164. package/build/src/schemas/mysql/MySQLSchemaField.js +260 -0
  165. package/build/src/schemas/mysql/MySQLSchemaField.js.map +1 -0
  166. package/build/src/schemas/mysql/MySQLSchemaTable.d.ts +49 -0
  167. package/build/src/schemas/mysql/MySQLSchemaTable.d.ts.map +1 -0
  168. package/build/src/schemas/mysql/MySQLSchemaTable.js +310 -0
  169. package/build/src/schemas/mysql/MySQLSchemaTable.js.map +1 -0
  170. package/build-web/HotStaq.js +2 -0
  171. package/build-web/HotStaq.min.js +125 -0
  172. package/builder/docker/Dockerfile.linux.gen +42 -0
  173. package/builder/docker/README.md +36 -0
  174. package/builder/docker/app/start.sh +8 -0
  175. package/builder/docker/dockerignore +3 -0
  176. package/builder/docker/scripts/build.bat +11 -0
  177. package/builder/docker/scripts/build.sh +11 -0
  178. package/builder/docker/scripts/start-app.bat +7 -0
  179. package/builder/docker/scripts/start-app.sh +7 -0
  180. package/builder/docker/scripts/stop-app.bat +5 -0
  181. package/builder/docker/scripts/stop-app.sh +5 -0
  182. package/builder/docker-compose/docker-compose.gen.yaml +41 -0
  183. package/builder/docker-compose/env-skeleton +4 -0
  184. package/creator/project/.vscode/launch.json +59 -0
  185. package/creator/project/README.md +20 -0
  186. package/creator/project/gitignore +118 -0
  187. package/creator/project/npmignore +118 -0
  188. package/creator/public/api-test.hott +28 -0
  189. package/creator/public/index.hott +12 -0
  190. package/creator/ts/src/AppAPI.ts +30 -0
  191. package/creator/ts/src/HelloWorld.ts +39 -0
  192. package/creator/ts/src/WebExport.ts +7 -0
  193. package/creator/ts/tsconfig-web.json +73 -0
  194. package/creator/ts/tsconfig.json +73 -0
  195. package/creator/ts/webpack-api.config.js +57 -0
  196. package/dbstart.sh +19 -0
  197. package/dbstop.sh +4 -0
  198. package/docs/.nojekyll +1 -0
  199. package/docs/README.md +128 -0
  200. package/docs/classes/Hot.md +477 -0
  201. package/docs/classes/HotAPI.md +369 -0
  202. package/docs/classes/HotClient.md +95 -0
  203. package/docs/classes/HotComponent.md +279 -0
  204. package/docs/classes/HotDB.md +247 -0
  205. package/docs/classes/HotDBInflux.md +404 -0
  206. package/docs/classes/HotDBMigration.md +80 -0
  207. package/docs/classes/HotDBMySQL.md +310 -0
  208. package/docs/classes/HotDBSchema.md +51 -0
  209. package/docs/classes/HotFile.md +353 -0
  210. package/docs/classes/HotHTTPServer.md +700 -0
  211. package/docs/classes/HotLog.md +162 -0
  212. package/docs/classes/HotPage.md +357 -0
  213. package/docs/classes/HotRoute.md +312 -0
  214. package/docs/classes/HotRouteMethod.md +271 -0
  215. package/docs/classes/HotServer.md +311 -0
  216. package/docs/classes/HotStaq.md +1153 -0
  217. package/docs/classes/HotTestDestination.md +58 -0
  218. package/docs/classes/HotTestDriver.md +332 -0
  219. package/docs/classes/HotTestElement.md +88 -0
  220. package/docs/classes/HotTestElementOptions.md +71 -0
  221. package/docs/classes/HotTestMap.md +92 -0
  222. package/docs/classes/HotTestSeleniumDriver.md +529 -0
  223. package/docs/classes/HotTester.md +653 -0
  224. package/docs/classes/HotTesterAPI.md +493 -0
  225. package/docs/classes/HotTesterMocha.md +843 -0
  226. package/docs/classes/HotTesterMochaSelenium.md +896 -0
  227. package/docs/classes/HotTesterServer.md +633 -0
  228. package/docs/classes/InfluxSchema.md +74 -0
  229. package/docs/classes/MySQLSchema.md +199 -0
  230. package/docs/classes/MySQLSchemaField.md +330 -0
  231. package/docs/classes/MySQLSchemaTable.md +176 -0
  232. package/docs/enums/ConnectionStatus.md +43 -0
  233. package/docs/enums/DeveloperMode.md +38 -0
  234. package/docs/enums/EventExecutionType.md +43 -0
  235. package/docs/enums/HTTPMethod.md +32 -0
  236. package/docs/enums/HotDBGenerationType.md +30 -0
  237. package/docs/enums/HotLogLevel.md +88 -0
  238. package/docs/interfaces/HotDBConnectionInterface.md +116 -0
  239. package/docs/interfaces/HotDestination.md +62 -0
  240. package/docs/interfaces/HotSite.md +187 -0
  241. package/docs/interfaces/HotSiteMapPath.md +37 -0
  242. package/docs/interfaces/HotSiteRoute.md +79 -0
  243. package/docs/interfaces/HotStartOptions.md +115 -0
  244. package/docs/interfaces/HotTestPage.md +44 -0
  245. package/docs/interfaces/HotTestStop.md +62 -0
  246. package/docs/interfaces/IHotComponent.md +135 -0
  247. package/docs/interfaces/IHotStaq.md +118 -0
  248. package/docs/interfaces/IHotTestElement.md +54 -0
  249. package/docs/interfaces/IHotTestElementOptions.md +43 -0
  250. package/docs/interfaces/MySQLResults.md +43 -0
  251. package/docs/interfaces/MySQLSchemaFieldResult.md +75 -0
  252. package/docs/modules.md +162 -0
  253. package/package.json +65 -0
  254. package/selenium-start.sh +7 -0
  255. package/selenium-stop.sh +3 -0
  256. package/src/Hot.ts +319 -0
  257. package/src/HotAPI.ts +378 -0
  258. package/src/HotAgentAPI.ts +43 -0
  259. package/src/HotAgentRoute.ts +44 -0
  260. package/src/HotBuilder.ts +221 -0
  261. package/src/HotClient.ts +40 -0
  262. package/src/HotComponent.ts +158 -0
  263. package/src/HotCreator.ts +482 -0
  264. package/src/HotDB.ts +79 -0
  265. package/src/HotDBConnectionInterface.ts +40 -0
  266. package/src/HotFile.ts +617 -0
  267. package/src/HotHTTPServer.ts +954 -0
  268. package/src/HotIO.ts +128 -0
  269. package/src/HotLog.ts +158 -0
  270. package/src/HotPage.ts +206 -0
  271. package/src/HotRoute.ts +137 -0
  272. package/src/HotRouteMethod.ts +216 -0
  273. package/src/HotServer.ts +211 -0
  274. package/src/HotSetAsWeb.ts +3 -0
  275. package/src/HotStaq.ts +1877 -0
  276. package/src/HotStaqWeb.ts +59 -0
  277. package/src/HotTestDriver.ts +172 -0
  278. package/src/HotTestElement.ts +97 -0
  279. package/src/HotTestMap.ts +130 -0
  280. package/src/HotTestSeleniumDriver.ts +374 -0
  281. package/src/HotTester.ts +697 -0
  282. package/src/HotTesterAPI.ts +126 -0
  283. package/src/HotTesterMocha.ts +133 -0
  284. package/src/HotTesterMochaSelenium.ts +189 -0
  285. package/src/HotTesterServer.ts +551 -0
  286. package/src/api.ts +102 -0
  287. package/src/cli.ts +1147 -0
  288. package/src/schemas/HotDBInflux.ts +211 -0
  289. package/src/schemas/HotDBMigration.ts +24 -0
  290. package/src/schemas/HotDBMySQL.ts +312 -0
  291. package/src/schemas/HotDBSchema.ts +21 -0
  292. package/src/schemas/influx/InfluxSchema.ts +19 -0
  293. package/src/schemas/mysql/MySQLSchema.ts +90 -0
  294. package/src/schemas/mysql/MySQLSchemaField.ts +408 -0
  295. package/src/schemas/mysql/MySQLSchemaTable.ts +353 -0
  296. package/tsconfig-web.json +74 -0
  297. package/tsconfig.json +73 -0
  298. package/webpack.config.js +51 -0
  299. package/webpack.config.tests.js +56 -0
@@ -0,0 +1,623 @@
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;
13
+ return g = { next: verb(0), "throw": verb(1), "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 (_) 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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.HotTester = void 0;
40
+ var HotStaq_1 = require("./HotStaq");
41
+ /**
42
+ * Executes tests.
43
+ */
44
+ var HotTester = /** @class */ (function () {
45
+ function HotTester(processor, name, baseUrl, driver, testMaps) {
46
+ if (testMaps === void 0) { testMaps = {}; }
47
+ this.processor = processor;
48
+ this.name = name;
49
+ this.baseUrl = baseUrl;
50
+ this.testMaps = testMaps;
51
+ this.driver = driver;
52
+ this.finishedLoading = false;
53
+ this.hasBeenSetup = false;
54
+ this.hasBeenDestroyed = false;
55
+ }
56
+ /**
57
+ * Waits for the API to finish loading all data.
58
+ */
59
+ HotTester.prototype.waitForData = function () {
60
+ return __awaiter(this, void 0, void 0, function () {
61
+ return __generator(this, function (_a) {
62
+ switch (_a.label) {
63
+ case 0:
64
+ if (!(this.finishedLoading === false)) return [3 /*break*/, 2];
65
+ return [4 /*yield*/, HotStaq_1.HotStaq.wait(10)];
66
+ case 1:
67
+ _a.sent();
68
+ return [3 /*break*/, 0];
69
+ case 2: return [2 /*return*/];
70
+ }
71
+ });
72
+ });
73
+ };
74
+ /**
75
+ * Get a test page.
76
+ */
77
+ HotTester.prototype.getTestPage = function (destination) {
78
+ var page = this.testMaps[destination.mapName].pages[destination.page];
79
+ return (page);
80
+ };
81
+ /**
82
+ * Get a test path.
83
+ */
84
+ HotTester.prototype.getTestPath = function (destination, pathName) {
85
+ var page = this.testMaps[destination.mapName].pages[destination.page];
86
+ return (page.testPaths[pathName]);
87
+ };
88
+ /**
89
+ * Get a destination JSON object to use.
90
+ */
91
+ HotTester.interpretDestination = function (mapName, testDest) {
92
+ var destination = testDest.destination;
93
+ var newDestination = {
94
+ mapName: mapName,
95
+ page: "",
96
+ api: "",
97
+ paths: []
98
+ };
99
+ var strs = destination.split(/\-\>/g);
100
+ var type = strs[0];
101
+ var getType = function (typeStr, typeDelimiter) {
102
+ var pos = typeStr.indexOf(typeDelimiter);
103
+ var typeValue = "";
104
+ if (pos > -1) {
105
+ typeValue = typeStr.substr(pos + typeDelimiter.length);
106
+ typeValue = typeValue.trim();
107
+ }
108
+ return (typeValue);
109
+ };
110
+ newDestination.page = getType(type, "page:");
111
+ newDestination.api = getType(type, "api:");
112
+ for (var iIdx = 1; iIdx < strs.length; iIdx++) {
113
+ var newPathStr = strs[iIdx];
114
+ var newPath = {
115
+ cmd: "",
116
+ dest: "",
117
+ path: ""
118
+ };
119
+ newPathStr = newPathStr.trim();
120
+ newPath.dest = getType(newPathStr, "dest:");
121
+ newPath.cmd = getType(newPathStr, "cmd:");
122
+ newPath.path = getType(newPathStr, "path:");
123
+ if ((newPath.dest == "") && (newPath.cmd == "") && (newPath.path == ""))
124
+ newPath.path = newPathStr;
125
+ newDestination.paths.push(newPath);
126
+ }
127
+ return (newDestination);
128
+ };
129
+ /**
130
+ * Execute an API's test path.
131
+ */
132
+ HotTester.prototype.executeTestAPIPath = function (destination, method, testName, skipEventCalls, continueWhenTestIsComplete) {
133
+ if (skipEventCalls === void 0) { skipEventCalls = false; }
134
+ if (continueWhenTestIsComplete === void 0) { continueWhenTestIsComplete = false; }
135
+ return __awaiter(this, void 0, void 0, function () {
136
+ var runTestPath, result, testCaseObject;
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0:
140
+ runTestPath = true;
141
+ if (!(skipEventCalls === false)) return [3 /*break*/, 2];
142
+ if (!(this.onTestAPIPathStart != null)) return [3 /*break*/, 2];
143
+ return [4 /*yield*/, this.onTestAPIPathStart(destination, method, testName, continueWhenTestIsComplete)];
144
+ case 1:
145
+ runTestPath = _a.sent();
146
+ _a.label = 2;
147
+ case 2:
148
+ result = null;
149
+ if (!(runTestPath === true)) return [3 /*break*/, 4];
150
+ testCaseObject = method.testCases[testName];
151
+ if (testCaseObject == null)
152
+ throw new Error("HotTester: Test case object ".concat(testName, " does not exist!"));
153
+ return [4 /*yield*/, testCaseObject.func(this.driver)];
154
+ case 3:
155
+ result = _a.sent();
156
+ _a.label = 4;
157
+ case 4:
158
+ if (!(skipEventCalls === false)) return [3 /*break*/, 6];
159
+ if (!(this.onTestAPIPathEnd != null)) return [3 /*break*/, 6];
160
+ return [4 /*yield*/, this.onTestAPIPathEnd(destination, method, testName, result, continueWhenTestIsComplete)];
161
+ case 5:
162
+ _a.sent();
163
+ _a.label = 6;
164
+ case 6: return [2 /*return*/, (result)];
165
+ }
166
+ });
167
+ });
168
+ };
169
+ /**
170
+ * Execute all test paths in an API route.
171
+ *
172
+ * @fixme This needs a better implementation...
173
+ */
174
+ HotTester.prototype.executeTestAPIPaths = function (destination) {
175
+ return __awaiter(this, void 0, void 0, function () {
176
+ var results, testMap, route, iIdx, stop_1, pathName, method, nextStop, testName, result;
177
+ return __generator(this, function (_a) {
178
+ switch (_a.label) {
179
+ case 0:
180
+ results = [];
181
+ testMap = this.testMaps[destination.mapName];
182
+ if (testMap == null)
183
+ throw new Error("HotTester: Map ".concat(destination.mapName, " does not exist!"));
184
+ if (this.processor.api == null)
185
+ throw new Error("HotTester: Associated processor does not have an API!");
186
+ route = this.processor.api.routes[destination.api];
187
+ if (route == null)
188
+ throw new Error("HotTester: API does not have route ".concat(destination.api, "!"));
189
+ iIdx = 0;
190
+ _a.label = 1;
191
+ case 1:
192
+ if (!(iIdx < destination.paths.length)) return [3 /*break*/, 4];
193
+ stop_1 = destination.paths[iIdx];
194
+ pathName = stop_1.path;
195
+ method = route.getMethod(pathName);
196
+ nextStop = destination.paths[iIdx + 1];
197
+ testName = nextStop.path;
198
+ return [4 /*yield*/, this.executeTestAPIPath(destination, method, testName)];
199
+ case 2:
200
+ result = _a.sent();
201
+ results.push(result);
202
+ _a.label = 3;
203
+ case 3:
204
+ iIdx += 2;
205
+ return [3 /*break*/, 1];
206
+ case 4: return [2 /*return*/, (results)];
207
+ }
208
+ });
209
+ });
210
+ };
211
+ /**
212
+ * Execute a test page path.
213
+ */
214
+ HotTester.prototype.executeTestPagePath = function (destination, stop, skipEventCalls, continueWhenTestIsComplete) {
215
+ if (skipEventCalls === void 0) { skipEventCalls = false; }
216
+ if (continueWhenTestIsComplete === void 0) { continueWhenTestIsComplete = false; }
217
+ return __awaiter(this, void 0, void 0, function () {
218
+ var runTestPath, testMap, page, testPathName, testPath, result;
219
+ return __generator(this, function (_a) {
220
+ switch (_a.label) {
221
+ case 0:
222
+ runTestPath = true;
223
+ testMap = this.testMaps[destination.mapName];
224
+ /// @fixme For some reason the errors being thrown here are not being thrown.
225
+ if (testMap == null)
226
+ throw new Error("HotTester: Map ".concat(destination.mapName, " does not exist!"));
227
+ page = testMap.pages[destination.page];
228
+ if (page == null)
229
+ throw new Error("HotTester: Page ".concat(destination.page, " does not exist!"));
230
+ this.driver.page = page;
231
+ testPathName = stop.path;
232
+ testPath = page.testPaths[testPathName];
233
+ if (!(skipEventCalls === false)) return [3 /*break*/, 2];
234
+ if (!(this.onTestPagePathStart != null)) return [3 /*break*/, 2];
235
+ return [4 /*yield*/, this.onTestPagePathStart(destination, page, stop, continueWhenTestIsComplete)];
236
+ case 1:
237
+ runTestPath = _a.sent();
238
+ _a.label = 2;
239
+ case 2:
240
+ result = null;
241
+ if (!(runTestPath === true)) return [3 /*break*/, 4];
242
+ if (testPath == null) {
243
+ debugger;
244
+ throw new Error("HotTester: Test path ".concat(testPathName, " does not have a function!"));
245
+ }
246
+ return [4 /*yield*/, testPath(this.driver)];
247
+ case 3:
248
+ result = _a.sent();
249
+ _a.label = 4;
250
+ case 4:
251
+ if (!(skipEventCalls === false)) return [3 /*break*/, 6];
252
+ if (!(this.onTestPagePathEnd != null)) return [3 /*break*/, 6];
253
+ return [4 /*yield*/, this.onTestPagePathEnd(destination, testPath, result, continueWhenTestIsComplete)];
254
+ case 5:
255
+ _a.sent();
256
+ _a.label = 6;
257
+ case 6: return [2 /*return*/, (result)];
258
+ }
259
+ });
260
+ });
261
+ };
262
+ /**
263
+ * Execute a command.
264
+ */
265
+ HotTester.prototype.executeCommand = function (destination, page, stop, cmd) {
266
+ return __awaiter(this, void 0, void 0, function () {
267
+ var hasCmd, getCmdArgs, cmdFunc, args;
268
+ var _this = this;
269
+ return __generator(this, function (_a) {
270
+ switch (_a.label) {
271
+ case 0:
272
+ hasCmd = function (input, cmd, hasArguments) {
273
+ var result = false;
274
+ if (stop.cmd === cmd)
275
+ result = true;
276
+ var pos = stop.cmd.indexOf("(");
277
+ // If there's parenthesis, get the incoming command.
278
+ if (pos > -1) {
279
+ var inputCmd = stop.cmd.substr(0, pos);
280
+ if (inputCmd === cmd)
281
+ result = true;
282
+ }
283
+ return (result);
284
+ };
285
+ getCmdArgs = function (input) {
286
+ var results = [];
287
+ var matches = input.match(/(?=\()(.*?)(?=\))/g);
288
+ if (matches != null) {
289
+ var tempMatch = matches[0];
290
+ // A little hack, since I suck at Regex :(
291
+ tempMatch = tempMatch.substr(2, tempMatch.length);
292
+ results.push(tempMatch);
293
+ }
294
+ if (results.length < 1)
295
+ throw new Error("HotTester: Command ".concat(input, " requires arguments, but none were supplied."));
296
+ return (results);
297
+ };
298
+ cmdFunc = null;
299
+ args = [];
300
+ if (hasCmd(stop.cmd, "waitForTesterAPIData", false) === true) {
301
+ cmdFunc = function (cmdArgs) { return __awaiter(_this, void 0, void 0, function () {
302
+ return __generator(this, function (_a) {
303
+ switch (_a.label) {
304
+ case 0:
305
+ this.finishedLoading = false;
306
+ return [4 /*yield*/, this.waitForData()];
307
+ case 1:
308
+ _a.sent();
309
+ return [2 /*return*/];
310
+ }
311
+ });
312
+ }); };
313
+ }
314
+ if (hasCmd(stop.cmd, "wait", true) === true) {
315
+ args = getCmdArgs(stop.cmd);
316
+ cmdFunc = function (cmdArgs) { return __awaiter(_this, void 0, void 0, function () {
317
+ var numMilliseconds;
318
+ return __generator(this, function (_a) {
319
+ switch (_a.label) {
320
+ case 0:
321
+ numMilliseconds = parseInt(cmdArgs[0]);
322
+ return [4 /*yield*/, HotStaq_1.HotStaq.wait(numMilliseconds)];
323
+ case 1:
324
+ _a.sent();
325
+ return [2 /*return*/];
326
+ }
327
+ });
328
+ }); };
329
+ }
330
+ if (hasCmd(stop.cmd, "url", true) === true) {
331
+ args = getCmdArgs(stop.cmd);
332
+ cmdFunc = function (cmdArgs) { return __awaiter(_this, void 0, void 0, function () {
333
+ var input;
334
+ return __generator(this, function (_a) {
335
+ switch (_a.label) {
336
+ case 0:
337
+ input = cmdArgs[0];
338
+ return [4 /*yield*/, this.driver.navigateToUrl(input)];
339
+ case 1:
340
+ _a.sent();
341
+ return [2 /*return*/];
342
+ }
343
+ });
344
+ }); };
345
+ }
346
+ if (hasCmd(stop.cmd, "print", true) === true) {
347
+ args = getCmdArgs(stop.cmd);
348
+ cmdFunc = function (cmdArgs) { return __awaiter(_this, void 0, void 0, function () {
349
+ var input;
350
+ return __generator(this, function (_a) {
351
+ switch (_a.label) {
352
+ case 0:
353
+ input = cmdArgs[0];
354
+ return [4 /*yield*/, this.driver.print(input)];
355
+ case 1:
356
+ _a.sent();
357
+ return [2 /*return*/];
358
+ }
359
+ });
360
+ }); };
361
+ }
362
+ if (hasCmd(stop.cmd, "println", true) === true) {
363
+ args = getCmdArgs(stop.cmd);
364
+ cmdFunc = function (cmdArgs) { return __awaiter(_this, void 0, void 0, function () {
365
+ var input;
366
+ return __generator(this, function (_a) {
367
+ switch (_a.label) {
368
+ case 0:
369
+ input = cmdArgs[0];
370
+ return [4 /*yield*/, this.driver.println(input)];
371
+ case 1:
372
+ _a.sent();
373
+ return [2 /*return*/];
374
+ }
375
+ });
376
+ }); };
377
+ }
378
+ if (hasCmd(stop.cmd, "waitForTestObject", true) === true) {
379
+ args = getCmdArgs(stop.cmd);
380
+ cmdFunc = function (cmdArgs) { return __awaiter(_this, void 0, void 0, function () {
381
+ var testObject;
382
+ return __generator(this, function (_a) {
383
+ switch (_a.label) {
384
+ case 0:
385
+ testObject = JSON.parse(cmdArgs[0]);
386
+ return [4 /*yield*/, this.driver.waitForTestElement(testObject)];
387
+ case 1:
388
+ _a.sent();
389
+ return [2 /*return*/];
390
+ }
391
+ });
392
+ }); };
393
+ }
394
+ if (cmdFunc == null)
395
+ throw new Error("HotTester: Command ".concat(stop.cmd, " does not exist!"));
396
+ return [4 /*yield*/, this.onCommand(destination, page, stop, cmd, args, cmdFunc)];
397
+ case 1:
398
+ _a.sent();
399
+ return [2 /*return*/];
400
+ }
401
+ });
402
+ });
403
+ };
404
+ /**
405
+ * Execute all test paths in a page.
406
+ */
407
+ HotTester.prototype.executeTestPagePaths = function (destination, continueWhenTestIsComplete) {
408
+ if (continueWhenTestIsComplete === void 0) { continueWhenTestIsComplete = false; }
409
+ return __awaiter(this, void 0, void 0, function () {
410
+ var results, testMap, iIdx, stop_2, result, page, testDest, newDestination;
411
+ return __generator(this, function (_a) {
412
+ switch (_a.label) {
413
+ case 0:
414
+ results = [];
415
+ testMap = this.testMaps[destination.mapName];
416
+ /// @fixme For some reason the errors being thrown here are not being thrown.
417
+ if (testMap == null)
418
+ throw new Error("HotTester: Map ".concat(destination.mapName, " does not exist!"));
419
+ iIdx = 0;
420
+ _a.label = 1;
421
+ case 1:
422
+ if (!(iIdx < destination.paths.length)) return [3 /*break*/, 9];
423
+ stop_2 = destination.paths[iIdx];
424
+ result = null;
425
+ page = testMap.pages[destination.page];
426
+ if (page == null)
427
+ throw new Error("HotTester: Page ".concat(destination.page, " does not exist!"));
428
+ if (!(stop_2.dest !== "")) return [3 /*break*/, 3];
429
+ if (testMap.destinations instanceof Array)
430
+ throw new Error("HotTester: When using type 'dest' in a destination string, all destinations in map ".concat(destination.mapName, " must be named."));
431
+ testDest = testMap.destinations[stop_2.dest];
432
+ newDestination = HotTester.interpretDestination(destination.mapName, testDest);
433
+ return [4 /*yield*/, this.executeTestPagePaths(newDestination)];
434
+ case 2:
435
+ result = _a.sent();
436
+ _a.label = 3;
437
+ case 3:
438
+ if (!(stop_2.cmd !== "")) return [3 /*break*/, 5];
439
+ return [4 /*yield*/, this.executeCommand(destination, page, stop_2, stop_2.cmd)];
440
+ case 4:
441
+ _a.sent();
442
+ _a.label = 5;
443
+ case 5:
444
+ if (!(stop_2.path !== "")) return [3 /*break*/, 7];
445
+ return [4 /*yield*/, this.executeTestPagePath(destination, stop_2, false, continueWhenTestIsComplete)];
446
+ case 6:
447
+ result = _a.sent();
448
+ _a.label = 7;
449
+ case 7:
450
+ results.push(result);
451
+ _a.label = 8;
452
+ case 8:
453
+ iIdx++;
454
+ return [3 /*break*/, 1];
455
+ case 9: return [2 /*return*/, (results)];
456
+ }
457
+ });
458
+ });
459
+ };
460
+ /**
461
+ * Execute the tests.
462
+ */
463
+ HotTester.prototype.execute = function (mapName) {
464
+ return __awaiter(this, void 0, void 0, function () {
465
+ var map, routeKey, url, executeDestination, iIdx, testDest, hasExecutedKeys, iIdx, orderKey, testDest, _a, _b, _i, key, executeDest, iIdx, executedKey, testDest, _c, _d, _e, key, testDest;
466
+ var _this = this;
467
+ return __generator(this, function (_f) {
468
+ switch (_f.label) {
469
+ case 0:
470
+ map = this.testMaps[mapName];
471
+ if (map == null)
472
+ throw new Error("HotTester: Map ".concat(mapName, " does not exist!"));
473
+ routeKey = this.processor.getRouteKeyFromName(mapName);
474
+ url = "";
475
+ if (routeKey !== "")
476
+ url = "".concat(this.baseUrl).concat(routeKey);
477
+ executeDestination = function (testDest, destinationKey) {
478
+ if (destinationKey === void 0) { destinationKey = ""; }
479
+ return __awaiter(_this, void 0, void 0, function () {
480
+ var destination, isWebRoute, runTestPaths;
481
+ return __generator(this, function (_a) {
482
+ switch (_a.label) {
483
+ case 0:
484
+ if (testDest.autoStart === false)
485
+ return [2 /*return*/];
486
+ destination = HotTester.interpretDestination(mapName, testDest);
487
+ isWebRoute = false;
488
+ runTestPaths = true;
489
+ if (destination.page !== "")
490
+ isWebRoute = true;
491
+ if (!(this.setup != null)) return [3 /*break*/, 2];
492
+ if (!(this.hasBeenSetup === false)) return [3 /*break*/, 2];
493
+ return [4 /*yield*/, this.setup(isWebRoute, url, destinationKey)];
494
+ case 1:
495
+ _a.sent();
496
+ this.hasBeenSetup = true;
497
+ this.hasBeenDestroyed = false;
498
+ _a.label = 2;
499
+ case 2:
500
+ if (!(this.onTestStart != null)) return [3 /*break*/, 4];
501
+ return [4 /*yield*/, this.onTestStart(destination, url, destinationKey)];
502
+ case 3:
503
+ runTestPaths = _a.sent();
504
+ _a.label = 4;
505
+ case 4:
506
+ if (!(runTestPaths === true)) return [3 /*break*/, 8];
507
+ if (!(destination.page !== "")) return [3 /*break*/, 6];
508
+ return [4 /*yield*/, this.executeTestPagePaths(destination)];
509
+ case 5:
510
+ _a.sent();
511
+ _a.label = 6;
512
+ case 6:
513
+ if (!(destination.api !== "")) return [3 /*break*/, 8];
514
+ return [4 /*yield*/, this.executeTestAPIPaths(destination)];
515
+ case 7:
516
+ _a.sent();
517
+ _a.label = 8;
518
+ case 8:
519
+ if (!(this.onTestEnd != null)) return [3 /*break*/, 10];
520
+ return [4 /*yield*/, this.onTestEnd(destination)];
521
+ case 9:
522
+ _a.sent();
523
+ _a.label = 10;
524
+ case 10:
525
+ if (!(this.destroy != null)) return [3 /*break*/, 12];
526
+ if (!(this.hasBeenDestroyed === false)) return [3 /*break*/, 12];
527
+ return [4 /*yield*/, this.destroy()];
528
+ case 11:
529
+ _a.sent();
530
+ this.hasBeenDestroyed = true;
531
+ this.hasBeenSetup = false;
532
+ _a.label = 12;
533
+ case 12: return [2 /*return*/];
534
+ }
535
+ });
536
+ });
537
+ };
538
+ if (!(map.destinations instanceof Array)) return [3 /*break*/, 5];
539
+ iIdx = 0;
540
+ _f.label = 1;
541
+ case 1:
542
+ if (!(iIdx < map.destinations.length)) return [3 /*break*/, 4];
543
+ testDest = map.destinations[iIdx];
544
+ return [4 /*yield*/, executeDestination(testDest)];
545
+ case 2:
546
+ _f.sent();
547
+ _f.label = 3;
548
+ case 3:
549
+ iIdx++;
550
+ return [3 /*break*/, 1];
551
+ case 4: return [3 /*break*/, 18];
552
+ case 5:
553
+ if (!(map.destinationOrder.length > 0)) return [3 /*break*/, 14];
554
+ hasExecutedKeys = [];
555
+ iIdx = 0;
556
+ _f.label = 6;
557
+ case 6:
558
+ if (!(iIdx < map.destinationOrder.length)) return [3 /*break*/, 9];
559
+ orderKey = map.destinationOrder[iIdx];
560
+ testDest = map.destinations[orderKey];
561
+ if (testDest == null)
562
+ throw new Error("HotTester: Destination ".concat(orderKey, " does not exist!"));
563
+ hasExecutedKeys.push(orderKey);
564
+ return [4 /*yield*/, executeDestination(testDest, orderKey)];
565
+ case 7:
566
+ _f.sent();
567
+ _f.label = 8;
568
+ case 8:
569
+ iIdx++;
570
+ return [3 /*break*/, 6];
571
+ case 9:
572
+ _a = [];
573
+ for (_b in map.destinations)
574
+ _a.push(_b);
575
+ _i = 0;
576
+ _f.label = 10;
577
+ case 10:
578
+ if (!(_i < _a.length)) return [3 /*break*/, 13];
579
+ key = _a[_i];
580
+ executeDest = true;
581
+ for (iIdx = 0; iIdx < hasExecutedKeys.length; iIdx++) {
582
+ executedKey = hasExecutedKeys[iIdx];
583
+ if (executedKey === key) {
584
+ executeDest = false;
585
+ break;
586
+ }
587
+ }
588
+ if (!(executeDest === true)) return [3 /*break*/, 12];
589
+ testDest = map.destinations[key];
590
+ return [4 /*yield*/, executeDestination(testDest, key)];
591
+ case 11:
592
+ _f.sent();
593
+ _f.label = 12;
594
+ case 12:
595
+ _i++;
596
+ return [3 /*break*/, 10];
597
+ case 13: return [3 /*break*/, 18];
598
+ case 14:
599
+ _c = [];
600
+ for (_d in map.destinations)
601
+ _c.push(_d);
602
+ _e = 0;
603
+ _f.label = 15;
604
+ case 15:
605
+ if (!(_e < _c.length)) return [3 /*break*/, 18];
606
+ key = _c[_e];
607
+ testDest = map.destinations[key];
608
+ return [4 /*yield*/, executeDestination(testDest, key)];
609
+ case 16:
610
+ _f.sent();
611
+ _f.label = 17;
612
+ case 17:
613
+ _e++;
614
+ return [3 /*break*/, 15];
615
+ case 18: return [2 /*return*/];
616
+ }
617
+ });
618
+ });
619
+ };
620
+ return HotTester;
621
+ }());
622
+ exports.HotTester = HotTester;
623
+ //# sourceMappingURL=HotTester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HotTester.js","sourceRoot":"","sources":["../../src/HotTester.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { HotAPI } from "./HotAPI";
2
+ import { HotClient } from "./HotClient";
3
+ import { HotServer } from "./HotServer";
4
+ export declare class HotTesterAPI extends HotAPI {
5
+ constructor(baseUrl: string, connection?: HotServer | HotClient, db?: any);
6
+ /**
7
+ * This is called when the page has finished loading in development mode.
8
+ */
9
+ pageLoaded(req: any, res: any, authorizedValue: any, jsonObj: any, queryObj: any): Promise<any>;
10
+ /**
11
+ * Execute the tests for a page.
12
+ */
13
+ executeTests(req: any, res: any, authorizedValue: any, jsonObj: any, queryObj: any): Promise<any>;
14
+ }
15
+ //# sourceMappingURL=HotTesterAPI.d.ts.map