@api-client/core 0.9.4 → 0.9.5

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 (224) hide show
  1. package/build/browser.d.ts +12 -2
  2. package/build/browser.js +15 -2
  3. package/build/browser.js.map +1 -1
  4. package/build/index.d.ts +13 -3
  5. package/build/index.js +16 -3
  6. package/build/index.js.map +1 -1
  7. package/build/src/data/{JmesparthReader.d.ts → JmespathReader.d.ts} +1 -1
  8. package/build/src/data/{JmesparthReader.js → JmespathReader.js} +2 -2
  9. package/build/src/data/JmespathReader.js.map +1 -0
  10. package/build/src/data/RequestDataExtractor.d.ts +5 -5
  11. package/build/src/data/RequestDataExtractor.js.map +1 -1
  12. package/build/src/data/XmlReader.js +14 -1
  13. package/build/src/data/XmlReader.js.map +1 -1
  14. package/build/src/models/ClientCertificate.d.ts +9 -0
  15. package/build/src/models/ClientCertificate.js.map +1 -1
  16. package/build/src/models/Environment.d.ts +3 -2
  17. package/build/src/models/Environment.js +11 -6
  18. package/build/src/models/Environment.js.map +1 -1
  19. package/build/src/models/ErrorResponse.js.map +1 -1
  20. package/build/src/models/HttpRequest.d.ts +2 -7
  21. package/build/src/models/HttpRequest.js +1 -6
  22. package/build/src/models/HttpRequest.js.map +1 -1
  23. package/build/src/models/HttpResponse.d.ts +2 -7
  24. package/build/src/models/HttpResponse.js +1 -3
  25. package/build/src/models/HttpResponse.js.map +1 -1
  26. package/build/src/models/ProjectRequest.d.ts +19 -0
  27. package/build/src/models/ProjectRequest.js +50 -0
  28. package/build/src/models/ProjectRequest.js.map +1 -1
  29. package/build/src/models/Request.d.ts +12 -3
  30. package/build/src/models/Request.js +14 -1
  31. package/build/src/models/Request.js.map +1 -1
  32. package/build/src/models/RequestAuthorization.js.map +1 -1
  33. package/build/src/models/RequestLog.d.ts +11 -0
  34. package/build/src/models/RequestLog.js +15 -1
  35. package/build/src/models/RequestLog.js.map +1 -1
  36. package/build/src/models/SerializablePayload.d.ts +6 -1
  37. package/build/src/models/SerializablePayload.js +10 -6
  38. package/build/src/models/SerializablePayload.js.map +1 -1
  39. package/build/src/models/http-actions/AssertionError.d.ts +36 -0
  40. package/build/src/models/http-actions/AssertionError.js +35 -0
  41. package/build/src/models/http-actions/AssertionError.js.map +1 -0
  42. package/build/src/models/http-actions/HttpAssertion.d.ts +84 -0
  43. package/build/src/models/http-actions/HttpAssertion.js +52 -0
  44. package/build/src/models/http-actions/HttpAssertion.js.map +1 -0
  45. package/build/src/models/http-actions/HttpFlows.d.ts +109 -0
  46. package/build/src/models/http-actions/HttpFlows.js +31 -0
  47. package/build/src/models/http-actions/HttpFlows.js.map +1 -0
  48. package/build/src/models/http-actions/HttpStep.d.ts +29 -0
  49. package/build/src/models/http-actions/HttpStep.js +30 -0
  50. package/build/src/models/http-actions/HttpStep.js.map +1 -0
  51. package/build/src/models/http-actions/LegacyTranslator.d.ts +8 -7
  52. package/build/src/models/http-actions/LegacyTranslator.js +18 -13
  53. package/build/src/models/http-actions/LegacyTranslator.js.map +1 -1
  54. package/build/src/models/http-actions/steps/assertion/EqualAssertion.d.ts +76 -0
  55. package/build/src/models/http-actions/steps/assertion/EqualAssertion.js +79 -0
  56. package/build/src/models/http-actions/steps/assertion/EqualAssertion.js.map +1 -0
  57. package/build/src/models/http-actions/steps/assertion/GreaterThanAssertion.d.ts +36 -0
  58. package/build/src/models/http-actions/steps/assertion/GreaterThanAssertion.js +59 -0
  59. package/build/src/models/http-actions/steps/assertion/GreaterThanAssertion.js.map +1 -0
  60. package/build/src/models/http-actions/steps/assertion/IncludesAssertion.d.ts +28 -0
  61. package/build/src/models/http-actions/steps/assertion/IncludesAssertion.js +45 -0
  62. package/build/src/models/http-actions/steps/assertion/IncludesAssertion.js.map +1 -0
  63. package/build/src/models/http-actions/steps/assertion/IsEmptyAssertion.d.ts +18 -0
  64. package/build/src/models/http-actions/steps/assertion/IsEmptyAssertion.js +29 -0
  65. package/build/src/models/http-actions/steps/assertion/IsEmptyAssertion.js.map +1 -0
  66. package/build/src/models/http-actions/steps/assertion/IsNotEmptyAssertion.d.ts +18 -0
  67. package/build/src/models/http-actions/steps/assertion/IsNotEmptyAssertion.js +29 -0
  68. package/build/src/models/http-actions/steps/assertion/IsNotEmptyAssertion.js.map +1 -0
  69. package/build/src/models/http-actions/steps/assertion/LengthOfAssertion.d.ts +28 -0
  70. package/build/src/models/http-actions/steps/assertion/LengthOfAssertion.js +45 -0
  71. package/build/src/models/http-actions/steps/assertion/LengthOfAssertion.js.map +1 -0
  72. package/build/src/models/http-actions/steps/assertion/LessThanAssertion.d.ts +36 -0
  73. package/build/src/models/http-actions/steps/assertion/LessThanAssertion.js +59 -0
  74. package/build/src/models/http-actions/steps/assertion/LessThanAssertion.js.map +1 -0
  75. package/build/src/models/http-actions/steps/assertion/MatchesAssertion.d.ts +28 -0
  76. package/build/src/models/http-actions/steps/assertion/MatchesAssertion.js +45 -0
  77. package/build/src/models/http-actions/steps/assertion/MatchesAssertion.js.map +1 -0
  78. package/build/src/models/http-actions/steps/assertion/MatchesSchemaAssertion.d.ts +36 -0
  79. package/build/src/models/http-actions/steps/assertion/MatchesSchemaAssertion.js +59 -0
  80. package/build/src/models/http-actions/steps/assertion/MatchesSchemaAssertion.js.map +1 -0
  81. package/build/src/models/http-actions/steps/assertion/NotEqualAssertion.d.ts +76 -0
  82. package/build/src/models/http-actions/steps/assertion/NotEqualAssertion.js +79 -0
  83. package/build/src/models/http-actions/steps/assertion/NotEqualAssertion.js.map +1 -0
  84. package/build/src/models/http-actions/steps/assertion/NotIncludesAssertion.d.ts +28 -0
  85. package/build/src/models/http-actions/steps/assertion/NotIncludesAssertion.js +45 -0
  86. package/build/src/models/http-actions/steps/assertion/NotIncludesAssertion.js.map +1 -0
  87. package/build/src/models/http-actions/steps/assertion/NotOkAssertion.d.ts +18 -0
  88. package/build/src/models/http-actions/steps/assertion/NotOkAssertion.js +29 -0
  89. package/build/src/models/http-actions/steps/assertion/NotOkAssertion.js.map +1 -0
  90. package/build/src/models/http-actions/steps/assertion/NotToBeAssertion.d.ts +29 -0
  91. package/build/src/models/http-actions/steps/assertion/NotToBeAssertion.js +45 -0
  92. package/build/src/models/http-actions/steps/assertion/NotToBeAssertion.js.map +1 -0
  93. package/build/src/models/http-actions/steps/assertion/OkAssertion.d.ts +18 -0
  94. package/build/src/models/http-actions/steps/assertion/OkAssertion.js +29 -0
  95. package/build/src/models/http-actions/steps/assertion/OkAssertion.js.map +1 -0
  96. package/build/src/models/http-actions/steps/assertion/ToBeAssertion.d.ts +35 -0
  97. package/build/src/models/http-actions/steps/assertion/ToBeAssertion.js +53 -0
  98. package/build/src/models/http-actions/steps/assertion/ToBeAssertion.js.map +1 -0
  99. package/build/src/models/http-actions/steps/assertion/index.d.ts +15 -0
  100. package/build/src/models/http-actions/steps/assertion/index.js +16 -0
  101. package/build/src/models/http-actions/steps/assertion/index.js.map +1 -0
  102. package/build/src/models/http-actions/steps/data/DeleteCookieStep.d.ts +44 -0
  103. package/build/src/models/http-actions/steps/data/DeleteCookieStep.js +67 -0
  104. package/build/src/models/http-actions/steps/data/DeleteCookieStep.js.map +1 -0
  105. package/build/src/models/http-actions/steps/data/ReadDataSourceStep.d.ts +53 -0
  106. package/build/src/models/http-actions/steps/data/ReadDataSourceStep.js +60 -0
  107. package/build/src/models/http-actions/steps/data/ReadDataSourceStep.js.map +1 -0
  108. package/build/src/models/http-actions/steps/data/ReadDataStep.d.ts +67 -0
  109. package/build/src/models/http-actions/steps/data/ReadDataStep.js +77 -0
  110. package/build/src/models/http-actions/steps/data/ReadDataStep.js.map +1 -0
  111. package/build/src/models/http-actions/steps/data/ReadValueStep.d.ts +45 -0
  112. package/build/src/models/http-actions/steps/data/ReadValueStep.js +52 -0
  113. package/build/src/models/http-actions/steps/data/ReadValueStep.js.map +1 -0
  114. package/build/src/models/http-actions/steps/data/SetCookieStep.d.ts +100 -0
  115. package/build/src/models/http-actions/steps/data/SetCookieStep.js +138 -0
  116. package/build/src/models/http-actions/steps/data/SetCookieStep.js.map +1 -0
  117. package/build/src/models/http-actions/steps/data/SetDataStep.d.ts +77 -0
  118. package/build/src/models/http-actions/steps/data/SetDataStep.js +69 -0
  119. package/build/src/models/http-actions/steps/data/SetDataStep.js.map +1 -0
  120. package/build/src/models/http-actions/steps/data/SetVariableStep.d.ts +40 -0
  121. package/build/src/models/http-actions/steps/data/SetVariableStep.js +44 -0
  122. package/build/src/models/http-actions/steps/data/SetVariableStep.js.map +1 -0
  123. package/build/src/models/http-actions/steps/data/index.d.ts +7 -0
  124. package/build/src/models/http-actions/steps/data/index.js +8 -0
  125. package/build/src/models/http-actions/steps/data/index.js.map +1 -0
  126. package/build/src/models/http-actions/steps/transformation/AsLowerCaseStep.d.ts +18 -0
  127. package/build/src/models/http-actions/steps/transformation/AsLowerCaseStep.js +29 -0
  128. package/build/src/models/http-actions/steps/transformation/AsLowerCaseStep.js.map +1 -0
  129. package/build/src/models/http-actions/steps/transformation/AsNumberStep.d.ts +18 -0
  130. package/build/src/models/http-actions/steps/transformation/AsNumberStep.js +29 -0
  131. package/build/src/models/http-actions/steps/transformation/AsNumberStep.js.map +1 -0
  132. package/build/src/models/http-actions/steps/transformation/AsUpperCaseStep.d.ts +18 -0
  133. package/build/src/models/http-actions/steps/transformation/AsUpperCaseStep.js +29 -0
  134. package/build/src/models/http-actions/steps/transformation/AsUpperCaseStep.js.map +1 -0
  135. package/build/src/models/http-actions/steps/transformation/RoundStep.d.ts +43 -0
  136. package/build/src/models/http-actions/steps/transformation/RoundStep.js +52 -0
  137. package/build/src/models/http-actions/steps/transformation/RoundStep.js.map +1 -0
  138. package/build/src/models/http-actions/steps/transformation/SubstringStep.d.ts +38 -0
  139. package/build/src/models/http-actions/steps/transformation/SubstringStep.js +65 -0
  140. package/build/src/models/http-actions/steps/transformation/SubstringStep.js.map +1 -0
  141. package/build/src/models/http-actions/steps/transformation/TrimStep.d.ts +20 -0
  142. package/build/src/models/http-actions/steps/transformation/TrimStep.js +30 -0
  143. package/build/src/models/http-actions/steps/transformation/TrimStep.js.map +1 -0
  144. package/build/src/models/http-actions/steps/transformation/index.d.ts +6 -0
  145. package/build/src/models/http-actions/steps/transformation/index.js +7 -0
  146. package/build/src/models/http-actions/steps/transformation/index.js.map +1 -0
  147. package/build/src/proxy/RequestProxy.d.ts +7 -2
  148. package/build/src/proxy/RequestProxy.js +4 -1
  149. package/build/src/proxy/RequestProxy.js.map +1 -1
  150. package/build/src/runtime/http-runner/ConditionCheck.d.ts +10 -10
  151. package/build/src/runtime/http-runner/ConditionCheck.js.map +1 -1
  152. package/build/src/runtime/http-runner/HttpAssertionRunner.d.ts +75 -0
  153. package/build/src/runtime/http-runner/HttpAssertionRunner.js +538 -0
  154. package/build/src/runtime/http-runner/HttpAssertionRunner.js.map +1 -0
  155. package/build/src/runtime/http-runner/HttpFlowRunner.d.ts +11 -6
  156. package/build/src/runtime/http-runner/HttpFlowRunner.js +24 -15
  157. package/build/src/runtime/http-runner/HttpFlowRunner.js.map +1 -1
  158. package/build/src/runtime/http-runner/HttpRequestRunner.d.ts +14 -3
  159. package/build/src/runtime/http-runner/HttpRequestRunner.js +44 -0
  160. package/build/src/runtime/http-runner/HttpRequestRunner.js.map +1 -1
  161. package/build/src/runtime/node/ProjectParallelRunner.d.ts +1 -1
  162. package/build/src/runtime/node/ProjectParallelRunner.js +2 -2
  163. package/build/src/runtime/node/ProjectParallelRunner.js.map +1 -1
  164. package/build/src/runtime/node/ProjectRequestRunner.js +6 -2
  165. package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -1
  166. package/package.json +3 -2
  167. package/src/data/{JmesparthReader.ts → JmespathReader.ts} +2 -2
  168. package/src/data/RequestDataExtractor.ts +5 -5
  169. package/src/data/XmlReader.ts +16 -2
  170. package/src/models/ClientCertificate.ts +9 -0
  171. package/src/models/Environment.ts +11 -7
  172. package/src/models/ErrorResponse.ts +1 -1
  173. package/src/models/HttpRequest.ts +4 -14
  174. package/src/models/HttpResponse.ts +5 -11
  175. package/src/models/ProjectRequest.ts +54 -0
  176. package/src/models/Request.ts +23 -4
  177. package/src/models/RequestAuthorization.ts +1 -1
  178. package/src/models/RequestLog.ts +21 -1
  179. package/src/models/SerializablePayload.ts +18 -1
  180. package/src/models/http-actions/AssertionError.ts +57 -0
  181. package/src/models/http-actions/HttpAssertion.ts +89 -0
  182. package/src/models/http-actions/HttpFlows.ts +115 -0
  183. package/src/models/http-actions/HttpStep.ts +50 -0
  184. package/src/models/http-actions/LegacyTranslator.ts +42 -30
  185. package/src/models/http-actions/steps/assertion/EqualAssertion.ts +130 -0
  186. package/src/models/http-actions/steps/assertion/GreaterThanAssertion.ts +87 -0
  187. package/src/models/http-actions/steps/assertion/IncludesAssertion.ts +68 -0
  188. package/src/models/http-actions/steps/assertion/IsEmptyAssertion.ts +41 -0
  189. package/src/models/http-actions/steps/assertion/IsNotEmptyAssertion.ts +41 -0
  190. package/src/models/http-actions/steps/assertion/LengthOfAssertion.ts +68 -0
  191. package/src/models/http-actions/steps/assertion/LessThanAssertion.ts +87 -0
  192. package/src/models/http-actions/steps/assertion/MatchesAssertion.ts +68 -0
  193. package/src/models/http-actions/steps/assertion/MatchesSchemaAssertion.ts +85 -0
  194. package/src/models/http-actions/steps/assertion/NotEqualAssertion.ts +130 -0
  195. package/src/models/http-actions/steps/assertion/NotIncludesAssertion.ts +68 -0
  196. package/src/models/http-actions/steps/assertion/NotOkAssertion.ts +41 -0
  197. package/src/models/http-actions/steps/assertion/NotToBeAssertion.ts +69 -0
  198. package/src/models/http-actions/steps/assertion/OkAssertion.ts +41 -0
  199. package/src/models/http-actions/steps/assertion/ToBeAssertion.ts +76 -0
  200. package/src/models/http-actions/steps/data/DeleteCookieStep.ts +102 -0
  201. package/src/models/http-actions/steps/data/ReadDataSourceStep.ts +103 -0
  202. package/src/models/http-actions/steps/data/ReadDataStep.ts +128 -0
  203. package/src/models/http-actions/steps/data/ReadValueStep.ts +88 -0
  204. package/src/models/http-actions/steps/data/SetCookieStep.ts +206 -0
  205. package/src/models/http-actions/steps/data/SetDataStep.ts +124 -0
  206. package/src/models/http-actions/steps/data/SetVariableStep.ts +82 -0
  207. package/src/models/http-actions/steps/transformation/AsLowerCaseStep.ts +41 -0
  208. package/src/models/http-actions/steps/transformation/AsNumberStep.ts +41 -0
  209. package/src/models/http-actions/steps/transformation/AsUpperCaseStep.ts +41 -0
  210. package/src/models/http-actions/steps/transformation/RoundStep.ts +86 -0
  211. package/src/models/http-actions/steps/transformation/SubstringStep.ts +93 -0
  212. package/src/models/http-actions/steps/transformation/TrimStep.ts +43 -0
  213. package/src/proxy/RequestProxy.ts +11 -3
  214. package/src/runtime/http-runner/ConditionCheck.ts +13 -14
  215. package/src/runtime/http-runner/HttpAssertionRunner.ts +540 -0
  216. package/src/runtime/http-runner/HttpFlowRunner.ts +33 -19
  217. package/src/runtime/http-runner/HttpRequestRunner.ts +53 -5
  218. package/src/runtime/node/ProjectParallelRunner.ts +4 -4
  219. package/src/runtime/node/ProjectRequestRunner.ts +6 -2
  220. package/build/src/data/JmesparthReader.js.map +0 -1
  221. package/build/src/models/http-actions/HttpActions.d.ts +0 -256
  222. package/build/src/models/http-actions/HttpActions.js +0 -46
  223. package/build/src/models/http-actions/HttpActions.js.map +0 -1
  224. package/src/models/http-actions/HttpActions.ts +0 -270
@@ -0,0 +1,538 @@
1
+ import { assert } from '@esm-bundle/chai';
2
+ import { HttpRequest } from "../../models/HttpRequest.js";
3
+ import { ErrorResponse } from "../../models/ErrorResponse.js";
4
+ import { FlowRequestDataEnum, FlowResponseDataEnum, FlowSourceEnum } from "../../models/http-actions/HttpFlows.js";
5
+ import { ReadDataSourceStep, ReadDataSourceStepKind } from "../../models/http-actions/steps/data/ReadDataSourceStep.js";
6
+ import { ReadValueStep, ReadValueStepKind } from "../../models/http-actions/steps/data/ReadValueStep.js";
7
+ import * as DataUtils from '../../data/DataUtils.js';
8
+ import { HttpResponse } from "../../models/HttpResponse.js";
9
+ import { Headers } from '../../lib/headers/Headers.js';
10
+ import { JmespathReader } from "../../data/JmespathReader.js";
11
+ import { XmlReader } from "../../data/XmlReader.js";
12
+ import { UrlEncodedReader } from "../../data/UrlEncodedReader.js";
13
+ import { AsLowerCaseStepKind } from "../../models/http-actions/steps/transformation/AsLowerCaseStep.js";
14
+ import { AsUpperCaseStepKind } from "../../models/http-actions/steps/transformation/AsUpperCaseStep.js";
15
+ import { AsNumberStepKind } from "../../models/http-actions/steps/transformation/AsNumberStep.js";
16
+ import { RoundStepKind } from "../../models/http-actions/steps/transformation/RoundStep.js";
17
+ import { SubstringStepKind } from "../../models/http-actions/steps/transformation/SubstringStep.js";
18
+ import { TrimStepKind } from "../../models/http-actions/steps/transformation/TrimStep.js";
19
+ import { EqualAssertionKind } from "../../models/http-actions/steps/assertion/EqualAssertion.js";
20
+ import { NotEqualAssertionKind } from "../../models/http-actions/steps/assertion/NotEqualAssertion.js";
21
+ import { ApiSchemaValues } from "../../amf/ApiSchemaValues.js";
22
+ import { AssertionError } from "../../models/http-actions/AssertionError.js";
23
+ import { GreaterThanAssertionKind } from "../../models/http-actions/steps/assertion/GreaterThanAssertion.js";
24
+ import { LessThanAssertionKind } from "../../models/http-actions/steps/assertion/LessThanAssertion.js";
25
+ import { IncludesAssertionKind } from "../../models/http-actions/steps/assertion/IncludesAssertion.js";
26
+ import { NotIncludesAssertionKind } from "../../models/http-actions/steps/assertion/NotIncludesAssertion.js";
27
+ import { OkAssertionKind } from "../../models/http-actions/steps/assertion/OkAssertion.js";
28
+ import { NotOkAssertionKind } from "../../models/http-actions/steps/assertion/NotOkAssertion.js";
29
+ import { ToBeAssertionKind, ToBeTypes } from '../../models/http-actions/steps/assertion/ToBeAssertion.js';
30
+ import { NotToBeAssertionKind } from '../../models/http-actions/steps/assertion/NotToBeAssertion.js';
31
+ import { IsEmptyAssertionKind } from '../../models/http-actions/steps/assertion/IsEmptyAssertion.js';
32
+ import { IsNotEmptyAssertionKind } from '../../models/http-actions/steps/assertion/IsNotEmptyAssertion.js';
33
+ import { LengthOfAssertionKind } from '../../models/http-actions/steps/assertion/LengthOfAssertion.js';
34
+ /**
35
+ * A class that perform assertions that have been defined on an HTTP request.
36
+ */
37
+ export class HttpAssertionRunner {
38
+ report = [];
39
+ /**
40
+ *
41
+ * @param request The request object sent to the server
42
+ * @param response The generated response
43
+ * @param assertions The list of assertions to perform.
44
+ */
45
+ async run(request, response, assertions) {
46
+ this.report = [];
47
+ if (!assertions || !assertions.length) {
48
+ return [...this.report];
49
+ }
50
+ for (const assertion of assertions) {
51
+ await this.runAssertion(request, response, assertion);
52
+ }
53
+ return [...this.report];
54
+ }
55
+ async runAssertion(request, response, assertion) {
56
+ const { steps } = assertion;
57
+ // this keeps a value from the last step to be passed to the next step.
58
+ let lastResult = {
59
+ value: undefined,
60
+ };
61
+ let error;
62
+ for (const step of steps) {
63
+ try {
64
+ lastResult = await this.runStep(request, response, step, lastResult);
65
+ }
66
+ catch (e) {
67
+ const typed = e;
68
+ if (typed.name === 'AssertionError') {
69
+ error = typed;
70
+ }
71
+ else {
72
+ const err = e;
73
+ error = new AssertionError({
74
+ message: err.message,
75
+ });
76
+ }
77
+ break;
78
+ }
79
+ }
80
+ const description = assertion.description || this.createDescription(steps);
81
+ if (error) {
82
+ this.report.push({
83
+ ok: false,
84
+ description,
85
+ error: error.toJSON(),
86
+ });
87
+ }
88
+ else {
89
+ this.report.push({
90
+ ok: true,
91
+ description,
92
+ });
93
+ }
94
+ }
95
+ createDescription(steps) {
96
+ const parts = [];
97
+ for (const step of steps) {
98
+ switch (step.kind) {
99
+ case ReadDataSourceStepKind:
100
+ parts.push(this.getDataSourceStepLabel(step));
101
+ break;
102
+ case ReadValueStepKind:
103
+ parts.push(this.getValueStepLabel(step));
104
+ break;
105
+ case AsLowerCaseStepKind:
106
+ parts.push('To lower case');
107
+ break;
108
+ case AsUpperCaseStepKind:
109
+ parts.push('To upper case');
110
+ break;
111
+ case AsNumberStepKind:
112
+ parts.push('As number');
113
+ break;
114
+ case RoundStepKind:
115
+ parts.push('Round');
116
+ break;
117
+ case TrimStepKind:
118
+ parts.push('Trim');
119
+ break;
120
+ case SubstringStepKind:
121
+ parts.push('Substring');
122
+ break;
123
+ case EqualAssertionKind:
124
+ parts.push(`Equals to ${step.value}`);
125
+ break;
126
+ case NotEqualAssertionKind:
127
+ parts.push(`Not equals to ${step.value}`);
128
+ break;
129
+ case GreaterThanAssertionKind:
130
+ parts.push(`Is greater than ${step.value}`);
131
+ break;
132
+ case LessThanAssertionKind:
133
+ parts.push(`Is less than ${step.value}`);
134
+ break;
135
+ case IncludesAssertionKind:
136
+ parts.push(`Includes ${step.value}`);
137
+ break;
138
+ case NotIncludesAssertionKind:
139
+ parts.push(`Not includes ${step.value}`);
140
+ break;
141
+ case OkAssertionKind:
142
+ parts.push(`Is OK`);
143
+ break;
144
+ case NotOkAssertionKind:
145
+ parts.push(`Is not OK`);
146
+ break;
147
+ default:
148
+ }
149
+ }
150
+ return parts.filter(i => !!i).join(' > ');
151
+ }
152
+ getDataSourceStepLabel(step) {
153
+ if (step.source === FlowSourceEnum.request) {
154
+ if (step.data === FlowRequestDataEnum.url) {
155
+ return 'Request URL';
156
+ }
157
+ if (step.data === FlowRequestDataEnum.headers) {
158
+ return 'Request headers';
159
+ }
160
+ if (step.data === FlowRequestDataEnum.method) {
161
+ return 'HTTP method';
162
+ }
163
+ if (step.data === FlowRequestDataEnum.body) {
164
+ return 'Request body';
165
+ }
166
+ }
167
+ if (step.source === FlowSourceEnum.response) {
168
+ if (step.data === FlowResponseDataEnum.url) {
169
+ return 'Response URL';
170
+ }
171
+ if (step.data === FlowResponseDataEnum.headers) {
172
+ return 'Response headers';
173
+ }
174
+ if (step.data === FlowResponseDataEnum.body) {
175
+ return 'Response body';
176
+ }
177
+ if (step.data === FlowResponseDataEnum.status) {
178
+ return 'Status code';
179
+ }
180
+ if (step.data === FlowResponseDataEnum.statusText) {
181
+ return 'Status message';
182
+ }
183
+ }
184
+ return 'Invalid step';
185
+ }
186
+ getValueStepLabel(step) {
187
+ const { path } = step;
188
+ return path || '';
189
+ }
190
+ async runStep(request, response, step, input) {
191
+ switch (step.kind) {
192
+ // data reading
193
+ case ReadDataSourceStepKind: return this.readDataSource(request, response, step);
194
+ case ReadValueStepKind: return this.readValue(input, step);
195
+ // transformations
196
+ case AsLowerCaseStepKind: return this.toLowerCase(input);
197
+ case AsUpperCaseStepKind: return this.toUpperCase(input);
198
+ case AsNumberStepKind: return this.asNumber(input);
199
+ case RoundStepKind: return this.round(input, step);
200
+ case TrimStepKind: return this.trim(input);
201
+ case SubstringStepKind: return this.substring(input, step);
202
+ // assertions
203
+ case EqualAssertionKind: return this.assertEqual(input, step);
204
+ case NotEqualAssertionKind: return this.assertNotEqual(input, step);
205
+ case GreaterThanAssertionKind: return this.assertGreaterThan(input, step);
206
+ case LessThanAssertionKind: return this.assertLessThan(input, step);
207
+ case IncludesAssertionKind: return this.assertIncludes(input, step);
208
+ case NotIncludesAssertionKind: return this.assertNotIncludes(input, step);
209
+ case OkAssertionKind: return this.assertOk(input);
210
+ case NotOkAssertionKind: return this.assertNotOk(input);
211
+ case ToBeAssertionKind: return this.toBe(input, step);
212
+ case NotToBeAssertionKind: return this.notToBe(input, step);
213
+ case IsEmptyAssertionKind: return this.isEmpty(input);
214
+ case IsNotEmptyAssertionKind: return this.isNotEmpty(input);
215
+ case LengthOfAssertionKind: return this.lengthOf(input, step);
216
+ default: return { value: undefined };
217
+ }
218
+ }
219
+ /**
220
+ * Produces the data source.
221
+ */
222
+ async readDataSource(request, response, step) {
223
+ const instance = new ReadDataSourceStep(step);
224
+ if (instance.enabled === false || !instance.checkValidity()) {
225
+ return { value: undefined };
226
+ }
227
+ const { source, data } = step;
228
+ if (source === FlowSourceEnum.request) {
229
+ if (data === FlowRequestDataEnum.url) {
230
+ return {
231
+ value: request.url,
232
+ type: data,
233
+ };
234
+ }
235
+ if (data === FlowRequestDataEnum.headers) {
236
+ return {
237
+ value: request.headers,
238
+ type: data,
239
+ };
240
+ }
241
+ if (data === FlowRequestDataEnum.method) {
242
+ return {
243
+ value: request.method,
244
+ type: data,
245
+ };
246
+ }
247
+ if (data === FlowRequestDataEnum.body) {
248
+ const instance = new HttpRequest(request);
249
+ const value = await this.processBody(instance);
250
+ return {
251
+ ...value,
252
+ type: data,
253
+ };
254
+ }
255
+ }
256
+ if (source === FlowSourceEnum.response) {
257
+ if (data === FlowResponseDataEnum.url) {
258
+ return {
259
+ value: request.url,
260
+ type: data,
261
+ };
262
+ }
263
+ if (data === FlowResponseDataEnum.headers) {
264
+ return {
265
+ value: response.headers,
266
+ type: data,
267
+ };
268
+ }
269
+ if (data === FlowResponseDataEnum.status) {
270
+ return {
271
+ value: response.status,
272
+ type: data,
273
+ };
274
+ }
275
+ if (data === FlowResponseDataEnum.statusText) {
276
+ return {
277
+ value: response.statusText,
278
+ type: data,
279
+ };
280
+ }
281
+ if (data === FlowResponseDataEnum.body) {
282
+ let instance;
283
+ if (ErrorResponse.isErrorResponse(response)) {
284
+ instance = new ErrorResponse(response);
285
+ }
286
+ else {
287
+ instance = new HttpResponse(response);
288
+ }
289
+ const value = await this.processBody(instance);
290
+ return {
291
+ ...value,
292
+ type: data,
293
+ };
294
+ }
295
+ }
296
+ return { value: undefined };
297
+ }
298
+ async processBody(input) {
299
+ const { headers } = input;
300
+ if (!headers) {
301
+ return { value: undefined };
302
+ }
303
+ const body = await input.readPayloadAsString();
304
+ if (!body) {
305
+ return { value: undefined };
306
+ }
307
+ const parser = new Headers(headers);
308
+ const mime = parser.get('content-type');
309
+ if (!mime) {
310
+ return { value: undefined };
311
+ }
312
+ return {
313
+ value: body,
314
+ bodyMime: mime,
315
+ };
316
+ }
317
+ /**
318
+ * Produces the value from the current input.
319
+ */
320
+ async readValue(input, step) {
321
+ const instance = new ReadValueStep(step);
322
+ if (instance.enabled === false || !instance.checkValidity() || input.value === undefined || input.value === null) {
323
+ return { value: undefined };
324
+ }
325
+ const { path } = step;
326
+ const { type, value } = input;
327
+ const args = path ? path.split('.') : [];
328
+ if (type === FlowRequestDataEnum.url || type === FlowResponseDataEnum.url) {
329
+ if (!value) {
330
+ return { value: undefined };
331
+ }
332
+ const v = String(input.value);
333
+ return {
334
+ value: DataUtils.getDataUrl(v, args),
335
+ };
336
+ }
337
+ if (type === FlowRequestDataEnum.headers || type === FlowResponseDataEnum.headers) {
338
+ if (!value) {
339
+ return { value: undefined };
340
+ }
341
+ const v = String(input.value);
342
+ return {
343
+ value: DataUtils.getDataHeaders(v, args),
344
+ };
345
+ }
346
+ if (type === FlowRequestDataEnum.body || type === FlowResponseDataEnum.body) {
347
+ if (!input.bodyMime || !path) {
348
+ return { value: undefined };
349
+ }
350
+ let reader;
351
+ if (input.bodyMime.includes('json')) {
352
+ reader = new JmespathReader();
353
+ }
354
+ else if (input.bodyMime.includes('xml')) {
355
+ reader = new XmlReader();
356
+ }
357
+ else if (input.bodyMime.includes('x-www-form-urlencoded')) {
358
+ reader = new UrlEncodedReader();
359
+ }
360
+ if (!reader) {
361
+ return { value: undefined };
362
+ }
363
+ await reader.writePayload(String(value));
364
+ const readValue = await reader.getValue(path);
365
+ return {
366
+ value: readValue,
367
+ };
368
+ }
369
+ if (type === FlowResponseDataEnum.status) {
370
+ const v = Number(input.value);
371
+ if (Number.isNaN(v)) {
372
+ return { value: undefined };
373
+ }
374
+ return {
375
+ value: v,
376
+ };
377
+ }
378
+ if (type === FlowResponseDataEnum.statusText) {
379
+ if (!value) {
380
+ return { value: undefined };
381
+ }
382
+ return {
383
+ value,
384
+ };
385
+ }
386
+ return { value: undefined };
387
+ }
388
+ async toLowerCase(input) {
389
+ if (input.value === null || input.value === undefined) {
390
+ return { value: undefined };
391
+ }
392
+ const value = String(input.value);
393
+ return { value: value.toLowerCase() };
394
+ }
395
+ async toUpperCase(input) {
396
+ if (input.value === null || input.value === undefined) {
397
+ return { value: undefined };
398
+ }
399
+ const value = String(input.value);
400
+ return { value: value.toUpperCase() };
401
+ }
402
+ async asNumber(input) {
403
+ if (input.value === null || input.value === undefined) {
404
+ return { value: undefined };
405
+ }
406
+ const value = String(input.value);
407
+ const parsed = Number(value);
408
+ if (Number.isNaN(parsed)) {
409
+ return { value: undefined };
410
+ }
411
+ return { value: parsed };
412
+ }
413
+ async round(input, step) {
414
+ if (input.value === null || input.value === undefined) {
415
+ return { value: undefined };
416
+ }
417
+ const value = String(input.value);
418
+ const parsed = typeof input.value === 'number' ? input.value : Number(value);
419
+ if (Number.isNaN(parsed)) {
420
+ return { value: undefined };
421
+ }
422
+ return { value: parsed.toFixed(step.precision) };
423
+ }
424
+ async trim(input) {
425
+ if (input.value === null || input.value === undefined) {
426
+ return { value: undefined };
427
+ }
428
+ const value = String(input.value);
429
+ return { ...input, value: value.trim() };
430
+ }
431
+ async substring(input, step) {
432
+ if (input.value === null || input.value === undefined) {
433
+ return { value: undefined };
434
+ }
435
+ if (typeof step.start !== 'number') {
436
+ return input;
437
+ }
438
+ const value = String(input.value);
439
+ return { ...input, value: value.substring(step.start, step.end) };
440
+ }
441
+ async assertEqual(input, step) {
442
+ const { value } = input;
443
+ if (step.strict) {
444
+ const comparator = ApiSchemaValues.readTypedValue(step.value, step.dataType);
445
+ assert.strictEqual(value, comparator);
446
+ }
447
+ else {
448
+ assert.equal(String(value), step.value);
449
+ }
450
+ return input;
451
+ }
452
+ async assertNotEqual(input, step) {
453
+ const { value } = input;
454
+ if (step.strict) {
455
+ const comparator = ApiSchemaValues.readTypedValue(step.value, step.dataType);
456
+ assert.notStrictEqual(value, comparator);
457
+ }
458
+ else {
459
+ assert.notEqual(value, step.value);
460
+ }
461
+ return input;
462
+ }
463
+ async assertGreaterThan(input, step) {
464
+ assert.typeOf(input.value, 'number');
465
+ const value = input.value;
466
+ if (step.equal) {
467
+ assert.isAtLeast(value, step.value);
468
+ }
469
+ else {
470
+ assert.isAbove(value, step.value);
471
+ }
472
+ return input;
473
+ }
474
+ async assertLessThan(input, step) {
475
+ assert.typeOf(input.value, 'number');
476
+ const value = input.value;
477
+ if (step.equal) {
478
+ assert.isAtMost(value, step.value);
479
+ }
480
+ else {
481
+ assert.isBelow(value, step.value);
482
+ }
483
+ return input;
484
+ }
485
+ async assertIncludes(input, step) {
486
+ if (this.isPrimitive(input.value)) {
487
+ assert.include(String(input.value), String(step.value));
488
+ }
489
+ else {
490
+ assert.include(JSON.stringify(input.value), String(step.value));
491
+ }
492
+ return input;
493
+ }
494
+ async assertNotIncludes(input, step) {
495
+ if (this.isPrimitive(input.value)) {
496
+ assert.notInclude(String(input.value), String(step.value));
497
+ }
498
+ else {
499
+ assert.notInclude(JSON.stringify(input.value), String(step.value));
500
+ }
501
+ return input;
502
+ }
503
+ async assertOk(input) {
504
+ assert.ok(input.value);
505
+ return input;
506
+ }
507
+ async assertNotOk(input) {
508
+ assert.notOk(input.value);
509
+ return input;
510
+ }
511
+ async toBe(input, step) {
512
+ assert.typeOf(input.value, step.value);
513
+ return input;
514
+ }
515
+ async notToBe(input, step) {
516
+ if (Array.isArray(input.value) && step.value === ToBeTypes.object) {
517
+ assert(false, 'expected [Array] to be an object');
518
+ }
519
+ assert.notTypeOf(input.value, step.value);
520
+ return input;
521
+ }
522
+ async isEmpty(input) {
523
+ assert.isEmpty(input.value);
524
+ return input;
525
+ }
526
+ async isNotEmpty(input) {
527
+ assert.isNotEmpty(input.value);
528
+ return input;
529
+ }
530
+ async lengthOf(input, step) {
531
+ assert.lengthOf(input.value, step.value);
532
+ return input;
533
+ }
534
+ isPrimitive(value) {
535
+ return (typeof value !== 'object' && typeof value !== 'function') || value === null;
536
+ }
537
+ }
538
+ //# sourceMappingURL=HttpAssertionRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpAssertionRunner.js","sourceRoot":"","sources":["../../../../src/runtime/http-runner/HttpAssertionRunner.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,14 @@ import { IHttpRequest } from "../../models/HttpRequest.js";
3
3
  import { ISentRequest } from "../../models/SentRequest.js";
4
4
  import { IResponse } from "../../models/Response.js";
5
5
  import { IErrorResponse } from "../../models/ErrorResponse.js";
6
- import { IActionStep, IDeleteCookieStep, IHttpAction, IHttpActionFlow, IHttpCondition, IReadDataStep, ISetCookieStep, ISetDataStep, ISetVariableStep } from '../../models/http-actions/HttpActions.js';
7
- type FlowValue = string | number | boolean | null | undefined;
6
+ import { IHttpAction, IHttpFlow, IHttpCondition } from '../../models/http-actions/HttpFlows.js';
7
+ import { IHttpStep } from "../../models/http-actions/HttpStep.js";
8
+ import { IReadDataStep } from "../../models/http-actions/steps/data/ReadDataStep.js";
9
+ import { ISetDataStep } from "../../models/http-actions/steps/data/SetDataStep.js";
10
+ import { ISetVariableStep } from "../../models/http-actions/steps/data/SetVariableStep.js";
11
+ import { ISetCookieStep } from "../../models/http-actions/steps/data/SetCookieStep.js";
12
+ import { IDeleteCookieStep } from "../../models/http-actions/steps/data/DeleteCookieStep.js";
13
+ export type FlowValue = string | number | boolean | null | undefined | unknown;
8
14
  export declare class HttpFlowRunner {
9
15
  /**
10
16
  * The cumulative list of all variables to be applied to the request and other properties.
@@ -18,11 +24,11 @@ export declare class HttpFlowRunner {
18
24
  * An instance of a cookie jar (store) to put/read cookies.
19
25
  */
20
26
  cookies?: CookieJar;
21
- request(request: IHttpRequest, flows?: IHttpActionFlow[]): Promise<void>;
22
- response(request: IHttpRequest | ISentRequest, response: IResponse | IErrorResponse, flows?: IHttpActionFlow[]): Promise<void>;
27
+ request(request: IHttpRequest, flows?: IHttpFlow[]): Promise<void>;
28
+ response(request: IHttpRequest | ISentRequest, response: IResponse | IErrorResponse, flows?: IHttpFlow[]): Promise<void>;
23
29
  _runAction(action: IHttpAction, request: IHttpRequest | ISentRequest, response?: IResponse | IErrorResponse): Promise<void>;
24
30
  _satisfied(condition: IHttpCondition, request: IHttpRequest | ISentRequest, response?: IResponse | IErrorResponse): Promise<boolean>;
25
- _runStep(step: IActionStep, input: FlowValue, request: IHttpRequest | ISentRequest, response?: IResponse | IErrorResponse): Promise<FlowValue>;
31
+ _runStep(step: IHttpStep, input: FlowValue, request: IHttpRequest | ISentRequest, response?: IResponse | IErrorResponse): Promise<FlowValue>;
26
32
  /**
27
33
  * A step that reads data from the request, response, or variables.
28
34
  *
@@ -59,4 +65,3 @@ export declare class HttpFlowRunner {
59
65
  */
60
66
  _runDeleteCookieStep(step: IDeleteCookieStep, request: IHttpRequest | ISentRequest): Promise<FlowValue>;
61
67
  }
62
- export {};