callman-core 1.36.0 → 1.38.0
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.
- package/dist/assertions/dbAssertions.d.ts +7 -0
- package/dist/assertions/dbAssertions.d.ts.map +1 -0
- package/dist/assertions/dbAssertions.js +191 -0
- package/dist/assertions/dbAssertions.js.map +1 -0
- package/dist/assertions/index.d.ts +4 -0
- package/dist/assertions/index.d.ts.map +1 -0
- package/dist/assertions/index.js +3 -0
- package/dist/assertions/index.js.map +1 -0
- package/dist/assertions/redisAssertions.d.ts +9 -0
- package/dist/assertions/redisAssertions.d.ts.map +1 -0
- package/dist/assertions/redisAssertions.js +159 -0
- package/dist/assertions/redisAssertions.js.map +1 -0
- package/dist/assertions/shared.d.ts +5 -0
- package/dist/assertions/shared.d.ts.map +1 -0
- package/dist/assertions/shared.js +25 -0
- package/dist/assertions/shared.js.map +1 -0
- package/dist/assertions/types.d.ts +46 -0
- package/dist/assertions/types.d.ts.map +1 -0
- package/dist/assertions/types.js +5 -0
- package/dist/assertions/types.js.map +1 -0
- package/dist/host/connections.d.ts +11 -0
- package/dist/host/connections.d.ts.map +1 -1
- package/dist/host/connections.js +22 -0
- package/dist/host/connections.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/loadtest/compare.d.ts +32 -0
- package/dist/loadtest/compare.d.ts.map +1 -0
- package/dist/loadtest/compare.js +55 -0
- package/dist/loadtest/compare.js.map +1 -0
- package/dist/loadtest/flow-eval.d.ts +21 -0
- package/dist/loadtest/flow-eval.d.ts.map +1 -0
- package/dist/loadtest/flow-eval.js +199 -0
- package/dist/loadtest/flow-eval.js.map +1 -0
- package/dist/loadtest/from-collection.d.ts +51 -0
- package/dist/loadtest/from-collection.d.ts.map +1 -0
- package/dist/loadtest/from-collection.js +131 -0
- package/dist/loadtest/from-collection.js.map +1 -0
- package/dist/loadtest/histogram.d.ts +41 -0
- package/dist/loadtest/histogram.d.ts.map +1 -0
- package/dist/loadtest/histogram.js +166 -0
- package/dist/loadtest/histogram.js.map +1 -0
- package/dist/loadtest/index.d.ts +18 -0
- package/dist/loadtest/index.d.ts.map +1 -0
- package/dist/loadtest/index.js +14 -0
- package/dist/loadtest/index.js.map +1 -0
- package/dist/loadtest/node/index.d.ts +4 -0
- package/dist/loadtest/node/index.d.ts.map +1 -0
- package/dist/loadtest/node/index.js +4 -0
- package/dist/loadtest/node/index.js.map +1 -0
- package/dist/loadtest/node/metrics.d.ts +84 -0
- package/dist/loadtest/node/metrics.d.ts.map +1 -0
- package/dist/loadtest/node/metrics.js +396 -0
- package/dist/loadtest/node/metrics.js.map +1 -0
- package/dist/loadtest/node/orchestrator.d.ts +24 -0
- package/dist/loadtest/node/orchestrator.d.ts.map +1 -0
- package/dist/loadtest/node/orchestrator.js +363 -0
- package/dist/loadtest/node/orchestrator.js.map +1 -0
- package/dist/loadtest/node/protocol.d.ts +102 -0
- package/dist/loadtest/node/protocol.d.ts.map +1 -0
- package/dist/loadtest/node/protocol.js +17 -0
- package/dist/loadtest/node/protocol.js.map +1 -0
- package/dist/loadtest/node/setup.d.ts +6 -0
- package/dist/loadtest/node/setup.d.ts.map +1 -0
- package/dist/loadtest/node/setup.js +100 -0
- package/dist/loadtest/node/setup.js.map +1 -0
- package/dist/loadtest/node/step-compiler.d.ts +29 -0
- package/dist/loadtest/node/step-compiler.d.ts.map +1 -0
- package/dist/loadtest/node/step-compiler.js +229 -0
- package/dist/loadtest/node/step-compiler.js.map +1 -0
- package/dist/loadtest/node/transport.d.ts +66 -0
- package/dist/loadtest/node/transport.d.ts.map +1 -0
- package/dist/loadtest/node/transport.js +414 -0
- package/dist/loadtest/node/transport.js.map +1 -0
- package/dist/loadtest/node/worker-core.d.ts +77 -0
- package/dist/loadtest/node/worker-core.d.ts.map +1 -0
- package/dist/loadtest/node/worker-core.js +744 -0
- package/dist/loadtest/node/worker-core.js.map +1 -0
- package/dist/loadtest/node/worker.d.ts +2 -0
- package/dist/loadtest/node/worker.d.ts.map +1 -0
- package/dist/loadtest/node/worker.js +28 -0
- package/dist/loadtest/node/worker.js.map +1 -0
- package/dist/loadtest/plan-file.d.ts +91 -0
- package/dist/loadtest/plan-file.d.ts.map +1 -0
- package/dist/loadtest/plan-file.js +134 -0
- package/dist/loadtest/plan-file.js.map +1 -0
- package/dist/loadtest/plan.d.ts +47 -0
- package/dist/loadtest/plan.d.ts.map +1 -0
- package/dist/loadtest/plan.js +259 -0
- package/dist/loadtest/plan.js.map +1 -0
- package/dist/loadtest/report.d.ts +8 -0
- package/dist/loadtest/report.d.ts.map +1 -0
- package/dist/loadtest/report.js +211 -0
- package/dist/loadtest/report.js.map +1 -0
- package/dist/loadtest/thresholds.d.ts +55 -0
- package/dist/loadtest/thresholds.d.ts.map +1 -0
- package/dist/loadtest/thresholds.js +203 -0
- package/dist/loadtest/thresholds.js.map +1 -0
- package/dist/loadtest/types.d.ts +500 -0
- package/dist/loadtest/types.d.ts.map +1 -0
- package/dist/loadtest/types.js +8 -0
- package/dist/loadtest/types.js.map +1 -0
- package/dist/loadtest/validate.d.ts +30 -0
- package/dist/loadtest/validate.d.ts.map +1 -0
- package/dist/loadtest/validate.js +162 -0
- package/dist/loadtest/validate.js.map +1 -0
- package/dist/runner/requestAssertions.d.ts +19 -0
- package/dist/runner/requestAssertions.d.ts.map +1 -0
- package/dist/runner/requestAssertions.js +45 -0
- package/dist/runner/requestAssertions.js.map +1 -0
- package/dist/runner/requestRunner.d.ts.map +1 -1
- package/dist/runner/requestRunner.js +25 -0
- package/dist/runner/requestRunner.js.map +1 -1
- package/dist/runner/runCollection.d.ts.map +1 -1
- package/dist/runner/runCollection.js +4 -1
- package/dist/runner/runCollection.js.map +1 -1
- package/dist/runner/runRequestWithDataset.d.ts.map +1 -1
- package/dist/runner/runRequestWithDataset.js +15 -2
- package/dist/runner/runRequestWithDataset.js.map +1 -1
- package/dist/templating/compile.d.ts +8 -0
- package/dist/templating/compile.d.ts.map +1 -0
- package/dist/templating/compile.js +110 -0
- package/dist/templating/compile.js.map +1 -0
- package/dist/templating/index.d.ts +2 -0
- package/dist/templating/index.d.ts.map +1 -1
- package/dist/templating/index.js +1 -0
- package/dist/templating/index.js.map +1 -1
- package/dist/templating/template-engine.d.ts +6 -0
- package/dist/templating/template-engine.d.ts.map +1 -1
- package/dist/templating/template-engine.js +6 -6
- package/dist/templating/template-engine.js.map +1 -1
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist-cjs/assertions/dbAssertions.js +195 -0
- package/dist-cjs/assertions/dbAssertions.js.map +1 -0
- package/dist-cjs/assertions/index.js +8 -0
- package/dist-cjs/assertions/index.js.map +1 -0
- package/dist-cjs/assertions/redisAssertions.js +163 -0
- package/dist-cjs/assertions/redisAssertions.js.map +1 -0
- package/dist-cjs/assertions/shared.js +30 -0
- package/dist-cjs/assertions/shared.js.map +1 -0
- package/dist-cjs/assertions/types.js +6 -0
- package/dist-cjs/assertions/types.js.map +1 -0
- package/dist-cjs/host/connections.js +24 -1
- package/dist-cjs/host/connections.js.map +1 -1
- package/dist-cjs/index.js +2 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/loadtest/compare.js +59 -0
- package/dist-cjs/loadtest/compare.js.map +1 -0
- package/dist-cjs/loadtest/flow-eval.js +205 -0
- package/dist-cjs/loadtest/flow-eval.js.map +1 -0
- package/dist-cjs/loadtest/from-collection.js +139 -0
- package/dist-cjs/loadtest/from-collection.js.map +1 -0
- package/dist-cjs/loadtest/histogram.js +171 -0
- package/dist-cjs/loadtest/histogram.js.map +1 -0
- package/dist-cjs/loadtest/index.js +78 -0
- package/dist-cjs/loadtest/index.js.map +1 -0
- package/dist-cjs/loadtest/node/index.js +12 -0
- package/dist-cjs/loadtest/node/index.js.map +1 -0
- package/dist-cjs/loadtest/node/metrics.js +402 -0
- package/dist-cjs/loadtest/node/metrics.js.map +1 -0
- package/dist-cjs/loadtest/node/orchestrator.js +372 -0
- package/dist-cjs/loadtest/node/orchestrator.js.map +1 -0
- package/dist-cjs/loadtest/node/protocol.js +20 -0
- package/dist-cjs/loadtest/node/protocol.js.map +1 -0
- package/dist-cjs/loadtest/node/setup.js +105 -0
- package/dist-cjs/loadtest/node/setup.js.map +1 -0
- package/dist-cjs/loadtest/node/step-compiler.js +234 -0
- package/dist-cjs/loadtest/node/step-compiler.js.map +1 -0
- package/dist-cjs/loadtest/node/transport.js +422 -0
- package/dist-cjs/loadtest/node/transport.js.map +1 -0
- package/dist-cjs/loadtest/node/worker-core.js +749 -0
- package/dist-cjs/loadtest/node/worker-core.js.map +1 -0
- package/dist-cjs/loadtest/node/worker.js +30 -0
- package/dist-cjs/loadtest/node/worker.js.map +1 -0
- package/dist-cjs/loadtest/plan-file.js +143 -0
- package/dist-cjs/loadtest/plan-file.js.map +1 -0
- package/dist-cjs/loadtest/plan.js +271 -0
- package/dist-cjs/loadtest/plan.js.map +1 -0
- package/dist-cjs/loadtest/report.js +220 -0
- package/dist-cjs/loadtest/report.js.map +1 -0
- package/dist-cjs/loadtest/thresholds.js +213 -0
- package/dist-cjs/loadtest/thresholds.js.map +1 -0
- package/dist-cjs/loadtest/types.js +9 -0
- package/dist-cjs/loadtest/types.js.map +1 -0
- package/dist-cjs/loadtest/validate.js +169 -0
- package/dist-cjs/loadtest/validate.js.map +1 -0
- package/dist-cjs/runner/requestAssertions.js +49 -0
- package/dist-cjs/runner/requestAssertions.js.map +1 -0
- package/dist-cjs/runner/requestRunner.js +25 -0
- package/dist-cjs/runner/requestRunner.js.map +1 -1
- package/dist-cjs/runner/runCollection.js +4 -1
- package/dist-cjs/runner/runCollection.js.map +1 -1
- package/dist-cjs/runner/runRequestWithDataset.js +15 -2
- package/dist-cjs/runner/runRequestWithDataset.js.map +1 -1
- package/dist-cjs/templating/compile.js +114 -0
- package/dist-cjs/templating/compile.js.map +1 -0
- package/dist-cjs/templating/index.js +3 -1
- package/dist-cjs/templating/index.js.map +1 -1
- package/dist-cjs/templating/template-engine.js +14 -12
- package/dist-cjs/templating/template-engine.js.map +1 -1
- package/package.json +10 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Pre-compiled templates for hot paths (the load-test engine resolves the same
|
|
2
|
+
// request template millions of times). `resolveTemplate` re-scans its input
|
|
3
|
+
// with a regex on every call and classifies every `{{ }}` expression again;
|
|
4
|
+
// `compileTemplate` tokenises ONCE and returns a function that only evaluates.
|
|
5
|
+
//
|
|
6
|
+
// Semantics are identical to `resolveTemplate`: same expression order
|
|
7
|
+
// (random → Postman `$` token → counter → variable → scope-prefixed variable),
|
|
8
|
+
// the same per-call counter de-duplication, and the same nested-resolution
|
|
9
|
+
// behaviour (a result that still contains `{{` is resolved again, up to the
|
|
10
|
+
// same number of passes). `resolveTemplate` stays the reference — this file
|
|
11
|
+
// must not diverge from it.
|
|
12
|
+
import { COUNTER_START_PATTERN, POSTMAN_DOLLAR_PATTERN, RANDOM_EXPRESSION_PATTERN, parseTemplateArguments, resolveCounterExpression, resolveRandomExpression, resolveTemplate, } from "./template-engine.js";
|
|
13
|
+
import { resolvePostmanDollarToken } from "./postman-generators.js";
|
|
14
|
+
const TOKEN_PATTERN = /\{\{\s*([^{}]+?)\s*\}\}/g;
|
|
15
|
+
const SCOPE_PREFIXES = ["env.", "globals.", "global."];
|
|
16
|
+
const classify = (rawExpression) => {
|
|
17
|
+
const expression = rawExpression.trim();
|
|
18
|
+
if (!expression)
|
|
19
|
+
return { kind: "empty" };
|
|
20
|
+
const randomMatch = expression.match(RANDOM_EXPRESSION_PATTERN);
|
|
21
|
+
if (randomMatch) {
|
|
22
|
+
return {
|
|
23
|
+
kind: "random",
|
|
24
|
+
name: randomMatch[1] ?? "",
|
|
25
|
+
args: parseTemplateArguments(randomMatch[2] ?? ""),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const dollarMatch = expression.match(POSTMAN_DOLLAR_PATTERN);
|
|
29
|
+
if (dollarMatch) {
|
|
30
|
+
return { kind: "dollar", name: dollarMatch[1] ?? "", fallback: expression };
|
|
31
|
+
}
|
|
32
|
+
if (expression === "counter" || COUNTER_START_PATTERN.test(expression)) {
|
|
33
|
+
return { kind: "counter", expression };
|
|
34
|
+
}
|
|
35
|
+
let prefixed = null;
|
|
36
|
+
for (const prefix of SCOPE_PREFIXES) {
|
|
37
|
+
if (expression.startsWith(prefix)) {
|
|
38
|
+
prefixed = expression.slice(prefix.length);
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { kind: "variable", name: expression, prefixed };
|
|
43
|
+
};
|
|
44
|
+
const evaluate = (token, context) => {
|
|
45
|
+
switch (token.kind) {
|
|
46
|
+
case "text":
|
|
47
|
+
return token.text;
|
|
48
|
+
case "empty":
|
|
49
|
+
return "";
|
|
50
|
+
case "random":
|
|
51
|
+
return resolveRandomExpression(token.name, token.args);
|
|
52
|
+
case "dollar": {
|
|
53
|
+
const value = resolvePostmanDollarToken(token.name);
|
|
54
|
+
if (value !== undefined)
|
|
55
|
+
return value;
|
|
56
|
+
// Same fall-through as the reference: an env variable literally named
|
|
57
|
+
// `$something` still resolves.
|
|
58
|
+
return context.environment[token.fallback] ?? "";
|
|
59
|
+
}
|
|
60
|
+
case "counter":
|
|
61
|
+
return resolveCounterExpression(token.expression, context);
|
|
62
|
+
case "variable": {
|
|
63
|
+
const environment = context.environment;
|
|
64
|
+
if (token.name in environment)
|
|
65
|
+
return environment[token.name] ?? "";
|
|
66
|
+
if (token.prefixed !== null && token.prefixed in environment) {
|
|
67
|
+
return environment[token.prefixed] ?? "";
|
|
68
|
+
}
|
|
69
|
+
return "";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Tokenise `input` once. The returned function is safe to call concurrently
|
|
75
|
+
* and holds no state; counters and variables come from the context.
|
|
76
|
+
*/
|
|
77
|
+
export const compileTemplate = (input) => {
|
|
78
|
+
if (!input.includes("{{")) {
|
|
79
|
+
return () => input;
|
|
80
|
+
}
|
|
81
|
+
const tokens = [];
|
|
82
|
+
let cursor = 0;
|
|
83
|
+
for (const match of input.matchAll(TOKEN_PATTERN)) {
|
|
84
|
+
const index = match.index ?? 0;
|
|
85
|
+
if (index > cursor)
|
|
86
|
+
tokens.push({ kind: "text", text: input.slice(cursor, index) });
|
|
87
|
+
tokens.push(classify(match[1] ?? ""));
|
|
88
|
+
cursor = index + match[0].length;
|
|
89
|
+
}
|
|
90
|
+
if (cursor < input.length)
|
|
91
|
+
tokens.push({ kind: "text", text: input.slice(cursor) });
|
|
92
|
+
// One dynamic token and nothing else is the common `{{var}}` case.
|
|
93
|
+
const single = tokens.length === 1 ? tokens[0] : null;
|
|
94
|
+
return (context) => {
|
|
95
|
+
let output;
|
|
96
|
+
if (single) {
|
|
97
|
+
output = evaluate(single, context);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
output = "";
|
|
101
|
+
for (const token of tokens)
|
|
102
|
+
output += evaluate(token, context);
|
|
103
|
+
}
|
|
104
|
+
// A value that is itself a template (`{{a}}` → `{{random.uuid()}}`):
|
|
105
|
+
// hand the remainder to the reference resolver, which owns the multi-pass
|
|
106
|
+
// rules.
|
|
107
|
+
return output.includes("{{") ? resolveTemplate(output, context) : output;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/templating/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { parseTemplateArguments, createTemplateRuntimeContext, resolveTemplate, resolveTemplateKeyValuePairs, } from "./template-engine.js";
|
|
2
|
+
export { compileTemplate } from "./compile.js";
|
|
3
|
+
export type { CompiledTemplate } from "./compile.js";
|
|
2
4
|
export { generateRandomUuid, generateRandomString, generateRandomEmail, generateRandomInt, generateRandomBigDecimal, generateRandomBoolean, generateRandomPhone, generateRandomDate, generateRandomName, } from "./random-generators.js";
|
|
3
5
|
export { createCounterStore, getNextCounterValue, resetCounterValue, getCounterSnapshot, hydrateCounterStore, } from "./counter-store.js";
|
|
4
6
|
export { RANDOM_GENERATOR_METADATA, COUNTER_GENERATOR_METADATA, TEMPLATE_GENERATOR_METADATA, } from "./generator-metadata.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
package/dist/templating/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// runtime data substitution lives in `scenario-runner/templateResolver.ts`
|
|
6
6
|
// — a separate API axis with pre-flattened values and condition support.
|
|
7
7
|
export { parseTemplateArguments, createTemplateRuntimeContext, resolveTemplate, resolveTemplateKeyValuePairs, } from "./template-engine.js";
|
|
8
|
+
export { compileTemplate } from "./compile.js";
|
|
8
9
|
export { generateRandomUuid, generateRandomString, generateRandomEmail, generateRandomInt, generateRandomBigDecimal, generateRandomBoolean, generateRandomPhone, generateRandomDate, generateRandomName, } from "./random-generators.js";
|
|
9
10
|
export { createCounterStore, getNextCounterValue, resetCounterValue, getCounterSnapshot, hydrateCounterStore, } from "./counter-store.js";
|
|
10
11
|
export { RANDOM_GENERATOR_METADATA, COUNTER_GENERATOR_METADATA, TEMPLATE_GENERATOR_METADATA, } from "./generator-metadata.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,+DAA+D;AAC/D,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AAEzE,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,+DAA+D;AAC/D,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AAEzE,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC"}
|
|
@@ -4,7 +4,13 @@ interface KeyValuePair {
|
|
|
4
4
|
value: string;
|
|
5
5
|
enabled?: boolean;
|
|
6
6
|
}
|
|
7
|
+
export declare const TEMPLATE_PATTERN: RegExp;
|
|
8
|
+
export declare const RANDOM_EXPRESSION_PATTERN: RegExp;
|
|
9
|
+
export declare const COUNTER_START_PATTERN: RegExp;
|
|
10
|
+
export declare const POSTMAN_DOLLAR_PATTERN: RegExp;
|
|
7
11
|
export declare const parseTemplateArguments: (input: string) => string[];
|
|
12
|
+
export declare const resolveRandomExpression: (generatorName: string, args: string[]) => string;
|
|
13
|
+
export declare const resolveCounterExpression: (expression: string, context: TemplateRuntimeContext) => string;
|
|
8
14
|
export declare const createTemplateRuntimeContext: (environment: Record<string, string>, options?: {
|
|
9
15
|
counterStore?: CounterStore;
|
|
10
16
|
}) => TemplateRuntimeContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEvE,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEvE,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,QAA6B,CAAC;AAC3D,eAAO,MAAM,yBAAyB,QAAqC,CAAC;AAC5E,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AAGjE,eAAO,MAAM,sBAAsB,QAA+B,CAAC;AAqBnE,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MAAM,EA4C5D,CAAC;AAWF,eAAO,MAAM,uBAAuB,GAClC,eAAe,MAAM,EACrB,MAAM,MAAM,EAAE,KACb,MA8BF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,YAAY,MAAM,EAClB,SAAS,sBAAsB,KAC9B,MAiBF,CAAC;AA0EF,eAAO,MAAM,4BAA4B,GACvC,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,UAAS;IAAE,YAAY,CAAC,EAAE,YAAY,CAAA;CAAO,KAC5C,sBAID,CAAC;AAEH,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,SAAS,sBAAsB,KAC9B,MAkBF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,YAAY,EACjE,SAAS,CAAC,EAAE,EACZ,SAAS,sBAAsB,KAC9B,CAAC,EAMC,CAAC"}
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
import { generateRandomBigDecimal, generateRandomBoolean, generateRandomDate, generateRandomEmail, generateRandomInt, generateRandomName, generateRandomPhone, generateRandomString, generateRandomUuid, } from "./random-generators.js";
|
|
6
6
|
import { resolvePostmanDollarToken } from "./postman-generators.js";
|
|
7
7
|
import { getNextCounterValue as defaultGetNextCounterValue } from "./counter-store.js";
|
|
8
|
-
const TEMPLATE_PATTERN = /\{\{\s*([^{}]+?)\s*\}\}/g;
|
|
9
|
-
const RANDOM_EXPRESSION_PATTERN = /^random\.([a-z]+)(?:\((.*)\))?$/i;
|
|
10
|
-
const COUNTER_START_PATTERN = /^counter\.start\((.*)\)$/i;
|
|
8
|
+
export const TEMPLATE_PATTERN = /\{\{\s*([^{}]+?)\s*\}\}/g;
|
|
9
|
+
export const RANDOM_EXPRESSION_PATTERN = /^random\.([a-z]+)(?:\((.*)\))?$/i;
|
|
10
|
+
export const COUNTER_START_PATTERN = /^counter\.start\((.*)\)$/i;
|
|
11
11
|
// Postman dynamic variable syntax: `$randomUUID`, `$timestamp`, `$guid`,
|
|
12
12
|
// `$isoTimestamp`, `$randomFirstName`, etc. — never takes arguments.
|
|
13
|
-
const POSTMAN_DOLLAR_PATTERN = /^\$([A-Za-z][A-Za-z0-9]*)$/;
|
|
13
|
+
export const POSTMAN_DOLLAR_PATTERN = /^\$([A-Za-z][A-Za-z0-9]*)$/;
|
|
14
14
|
const MAX_TEMPLATE_PASSES = 4;
|
|
15
15
|
const stripWrappingQuotes = (value) => {
|
|
16
16
|
const trimmed = value.trim();
|
|
@@ -68,7 +68,7 @@ const toFiniteNumber = (value, fallback) => {
|
|
|
68
68
|
const parsedValue = Number(value);
|
|
69
69
|
return Number.isFinite(parsedValue) ? parsedValue : fallback;
|
|
70
70
|
};
|
|
71
|
-
const resolveRandomExpression = (generatorName, args) => {
|
|
71
|
+
export const resolveRandomExpression = (generatorName, args) => {
|
|
72
72
|
switch (generatorName.toLowerCase()) {
|
|
73
73
|
case "email":
|
|
74
74
|
return generateRandomEmail();
|
|
@@ -92,7 +92,7 @@ const resolveRandomExpression = (generatorName, args) => {
|
|
|
92
92
|
return "";
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
|
-
const resolveCounterExpression = (expression, context) => {
|
|
95
|
+
export const resolveCounterExpression = (expression, context) => {
|
|
96
96
|
if (context.requestCounterCache.has(expression)) {
|
|
97
97
|
return context.requestCounterCache.get(expression) ?? "";
|
|
98
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,uEAAuE;AACvE,uEAAuE;AACvE,2EAA2E;AAE3E,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,mBAAmB,IAAI,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AASvF,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { EnvStore } from "../variables/envStore.js";
|
|
|
2
2
|
import type { ConnectionRuntimeMap, RequestDatabaseRuntimeConfig, RequestRedisRuntimeConfig } from "../host/connections.js";
|
|
3
3
|
import type { ScriptDbCapability, ScriptFeaturePolicy, ScriptLogEntry, ScriptRedisCapability } from "../script/types.js";
|
|
4
4
|
import type { ScriptSource } from "../script/chain.js";
|
|
5
|
+
import type { DbAssertionResult, RedisAssertionResult, RequestDbAssertion } from "../assertions/types.js";
|
|
5
6
|
import type { ScriptLayer, ScriptLayerFolderInput, ScriptLayerScripts } from "../script/layers.js";
|
|
6
7
|
export interface Collection {
|
|
7
8
|
id?: string;
|
|
@@ -57,6 +58,7 @@ export interface RequestItem {
|
|
|
57
58
|
contracts?: any[];
|
|
58
59
|
database?: RequestDatabaseRuntimeConfig;
|
|
59
60
|
redis?: RequestRedisRuntimeConfig;
|
|
61
|
+
dbAssertions?: RequestDbAssertion[];
|
|
60
62
|
}
|
|
61
63
|
export interface ExecutionResult {
|
|
62
64
|
requestId: string;
|
|
@@ -67,6 +69,12 @@ export interface ExecutionResult {
|
|
|
67
69
|
request?: ExecuteRequestInput;
|
|
68
70
|
scriptResults: TestResult[];
|
|
69
71
|
contractResults: TestResult[];
|
|
72
|
+
/**
|
|
73
|
+
* Outcome of the request's DB / Redis assertions (core >= 1.38). Present
|
|
74
|
+
* only when the request carries any; a `FAIL` fails the request.
|
|
75
|
+
*/
|
|
76
|
+
dbAssertionResults?: DbAssertionResult[];
|
|
77
|
+
redisAssertionResults?: RedisAssertionResult[];
|
|
70
78
|
/**
|
|
71
79
|
* The runner's verdict for this request, expectedStatus included. Optional
|
|
72
80
|
* only so results produced by an older core still type-check.
|
|
@@ -288,6 +296,8 @@ export interface DataDrivenIterationResult {
|
|
|
288
296
|
durationMs: number;
|
|
289
297
|
scriptResults: TestResult[];
|
|
290
298
|
contractResults: TestResult[];
|
|
299
|
+
dbAssertionResults?: DbAssertionResult[];
|
|
300
|
+
redisAssertionResults?: RedisAssertionResult[];
|
|
291
301
|
passed: boolean;
|
|
292
302
|
request?: ExecuteRequestInput;
|
|
293
303
|
response?: ExecuteRequestResult | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAGpC,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,UAAU,GAAG,eAAe,CAAC;AAClF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAGhD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG/B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,GAAG,CAAC;IAKX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAIlB,QAAQ,CAAC,EAAE,4BAA4B,CAAC;IACxC,KAAK,CAAC,EAAE,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// DB assertion evaluator — a pure port of the desktop's `runDbAssertions`
|
|
3
|
+
// (`features/database/lib/dbAssertions.ts`), so the desktop, the CLI and the MCP
|
|
4
|
+
// server reach the same PASS/FAIL for the same request and the same results.
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runDbAssertions = void 0;
|
|
7
|
+
const shared_js_1 = require("./shared.js");
|
|
8
|
+
const getByPath = (value, path) => {
|
|
9
|
+
let current = value;
|
|
10
|
+
for (const segment of path) {
|
|
11
|
+
if (current === null || current === undefined) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
if (Array.isArray(current)) {
|
|
15
|
+
if (segment === "first") {
|
|
16
|
+
current = current[0];
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const index = Number(segment);
|
|
20
|
+
if (!Number.isInteger(index)) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
current = current[index];
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (!(0, shared_js_1.isPlainObject)(current)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
current = current[segment];
|
|
30
|
+
}
|
|
31
|
+
return current;
|
|
32
|
+
};
|
|
33
|
+
const createDbSourceRoot = (result) => ({
|
|
34
|
+
success: result?.success ?? false,
|
|
35
|
+
rowCount: result?.rowCount ?? 0,
|
|
36
|
+
rows: result?.rows ?? [],
|
|
37
|
+
firstRow: result?.rows?.[0] ?? null,
|
|
38
|
+
error: result?.error ?? null,
|
|
39
|
+
});
|
|
40
|
+
const resolveExpression = ({ expression, responseRoot, dbResults, }) => {
|
|
41
|
+
const normalizedExpression = expression.trim();
|
|
42
|
+
if (!normalizedExpression) {
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
if (normalizedExpression.startsWith("response.")) {
|
|
46
|
+
return getByPath(responseRoot, normalizedExpression.slice("response.".length).split("."));
|
|
47
|
+
}
|
|
48
|
+
if (normalizedExpression.startsWith("db_pre.")) {
|
|
49
|
+
return getByPath(createDbSourceRoot(dbResults.pre), normalizedExpression.slice("db_pre.".length).split("."));
|
|
50
|
+
}
|
|
51
|
+
if (normalizedExpression.startsWith("db_post.")) {
|
|
52
|
+
return getByPath(createDbSourceRoot(dbResults.post), normalizedExpression.slice("db_post.".length).split("."));
|
|
53
|
+
}
|
|
54
|
+
return getByPath(responseRoot, normalizedExpression.split("."));
|
|
55
|
+
};
|
|
56
|
+
const resolveExpectedValue = ({ assertion, responseRoot, dbResults, }) => {
|
|
57
|
+
if (assertion.valueType !== "response") {
|
|
58
|
+
return assertion.value;
|
|
59
|
+
}
|
|
60
|
+
const fullMatch = assertion.value.match(shared_js_1.FULL_TEMPLATE_PATTERN);
|
|
61
|
+
if (fullMatch) {
|
|
62
|
+
return resolveExpression({
|
|
63
|
+
expression: fullMatch[1] ?? "",
|
|
64
|
+
responseRoot,
|
|
65
|
+
dbResults,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return assertion.value.replace(shared_js_1.TEMPLATE_PATTERN, (_match, expression) => (0, shared_js_1.stringifyValue)(resolveExpression({
|
|
69
|
+
expression,
|
|
70
|
+
responseRoot,
|
|
71
|
+
dbResults,
|
|
72
|
+
})));
|
|
73
|
+
};
|
|
74
|
+
const resolveAssertionActualValue = ({ assertion, responseRoot, dbResults, }) => {
|
|
75
|
+
const normalizedField = assertion.field.trim();
|
|
76
|
+
if (!normalizedField) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
if (normalizedField.startsWith("response.") ||
|
|
80
|
+
normalizedField.startsWith("db_pre.") ||
|
|
81
|
+
normalizedField.startsWith("db_post.")) {
|
|
82
|
+
return resolveExpression({
|
|
83
|
+
expression: normalizedField,
|
|
84
|
+
responseRoot,
|
|
85
|
+
dbResults,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const sourceRoot = assertion.source === "db_pre"
|
|
89
|
+
? createDbSourceRoot(dbResults.pre)
|
|
90
|
+
: createDbSourceRoot(dbResults.post);
|
|
91
|
+
return getByPath(sourceRoot, normalizedField.split("."));
|
|
92
|
+
};
|
|
93
|
+
const deepEquals = (left, right) => {
|
|
94
|
+
if (left === right) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
if (typeof left === "number" &&
|
|
98
|
+
typeof right === "string" &&
|
|
99
|
+
right.trim() !== "" &&
|
|
100
|
+
Number(right) === left) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
if (typeof right === "number" &&
|
|
104
|
+
typeof left === "string" &&
|
|
105
|
+
left.trim() !== "" &&
|
|
106
|
+
Number(left) === right) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
if (typeof left === "boolean" && typeof right === "string") {
|
|
110
|
+
return String(left) === right.toLowerCase();
|
|
111
|
+
}
|
|
112
|
+
if (typeof right === "boolean" && typeof left === "string") {
|
|
113
|
+
return String(right) === left.toLowerCase();
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
const runDbAssertions = ({ responseRoot, dbResults, assertions, }) => {
|
|
123
|
+
if (assertions.length === 0) {
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
const failingDbError = (dbResults.pre && !dbResults.pre.success && dbResults.pre.error) ||
|
|
127
|
+
(dbResults.post && !dbResults.post.success && dbResults.post.error) ||
|
|
128
|
+
null;
|
|
129
|
+
if (failingDbError) {
|
|
130
|
+
return assertions.map((assertion) => ({
|
|
131
|
+
id: assertion.id,
|
|
132
|
+
name: assertion.name,
|
|
133
|
+
status: "FAIL",
|
|
134
|
+
message: failingDbError,
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
return assertions.map((assertion) => {
|
|
138
|
+
const actual = resolveAssertionActualValue({
|
|
139
|
+
assertion,
|
|
140
|
+
responseRoot,
|
|
141
|
+
dbResults,
|
|
142
|
+
});
|
|
143
|
+
if (assertion.operator === "exists") {
|
|
144
|
+
const passed = actual !== undefined && actual !== null;
|
|
145
|
+
return {
|
|
146
|
+
id: assertion.id,
|
|
147
|
+
name: assertion.name,
|
|
148
|
+
status: passed ? "PASS" : "FAIL",
|
|
149
|
+
message: passed
|
|
150
|
+
? `${assertion.field} exists`
|
|
151
|
+
: `${assertion.field} is missing`,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const expected = resolveExpectedValue({
|
|
155
|
+
assertion,
|
|
156
|
+
responseRoot,
|
|
157
|
+
dbResults,
|
|
158
|
+
});
|
|
159
|
+
if (assertion.operator === "gt" || assertion.operator === "lt") {
|
|
160
|
+
const actualNumber = Number(actual);
|
|
161
|
+
const expectedNumber = Number(expected);
|
|
162
|
+
if (!Number.isFinite(actualNumber) || !Number.isFinite(expectedNumber)) {
|
|
163
|
+
return {
|
|
164
|
+
id: assertion.id,
|
|
165
|
+
name: assertion.name,
|
|
166
|
+
status: "FAIL",
|
|
167
|
+
message: `Numeric comparison failed for ${assertion.field}`,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
const passed = assertion.operator === "gt"
|
|
171
|
+
? actualNumber > expectedNumber
|
|
172
|
+
: actualNumber < expectedNumber;
|
|
173
|
+
return {
|
|
174
|
+
id: assertion.id,
|
|
175
|
+
name: assertion.name,
|
|
176
|
+
status: passed ? "PASS" : "FAIL",
|
|
177
|
+
message: passed
|
|
178
|
+
? `${assertion.field} ${assertion.operator} ${expectedNumber}`
|
|
179
|
+
: `Expected ${assertion.field} ${assertion.operator} ${expectedNumber} but got ${actualNumber}`,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
const equals = deepEquals(actual, expected);
|
|
183
|
+
const passed = assertion.operator === "equals" ? equals : !equals;
|
|
184
|
+
return {
|
|
185
|
+
id: assertion.id,
|
|
186
|
+
name: assertion.name,
|
|
187
|
+
status: passed ? "PASS" : "FAIL",
|
|
188
|
+
message: passed
|
|
189
|
+
? `${assertion.field} ${assertion.operator} check passed`
|
|
190
|
+
: `Expected ${assertion.field} ${assertion.operator === "equals" ? "=" : "!="} ${(0, shared_js_1.stringifyValue)(expected)} but got ${(0, shared_js_1.stringifyValue)(actual)}`,
|
|
191
|
+
};
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
exports.runDbAssertions = runDbAssertions;
|
|
195
|
+
//# sourceMappingURL=dbAssertions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dbAssertions.js","sourceRoot":"","sources":["../../src/assertions/dbAssertions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runRedisAssertions = exports.runDbAssertions = void 0;
|
|
4
|
+
var dbAssertions_js_1 = require("./dbAssertions.js");
|
|
5
|
+
Object.defineProperty(exports, "runDbAssertions", { enumerable: true, get: function () { return dbAssertions_js_1.runDbAssertions; } });
|
|
6
|
+
var redisAssertions_js_1 = require("./redisAssertions.js");
|
|
7
|
+
Object.defineProperty(exports, "runRedisAssertions", { enumerable: true, get: function () { return redisAssertions_js_1.runRedisAssertions; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assertions/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA"}
|