cypress-spok-command
Version:
A wrapper around cy-spok
170 lines (155 loc) • 7.2 kB
JavaScript
import $hgUW1$cyspok from "cy-spok";
const $c28a58ceaf5fb2f1$var$stringifySortKeys = (object)=>JSON.stringify(Object.keys(object).sort());
const $c28a58ceaf5fb2f1$var$sameKeys = (target, matcher)=>$c28a58ceaf5fb2f1$var$stringifySortKeys(target) === $c28a58ceaf5fb2f1$var$stringifySortKeys(matcher);
const $c28a58ceaf5fb2f1$export$16ed51028860e0c0 = "cy.spok() strictMode error: object keys were not an exact match";
function $c28a58ceaf5fb2f1$export$302a47ce5e674e39(target, matcher) {
const result = $c28a58ceaf5fb2f1$var$sameKeys(target, matcher);
Cypress.log({
name: "strictMode",
message: `target and matcher have same keys: ${result}`
});
if (!result) throw new Error($c28a58ceaf5fb2f1$export$16ed51028860e0c0);
}
const $aeeceec19374ab2a$export$64c4f432e043d5dd = {
spokRegex: /^spok\..*$/,
spokArrayElementsRegex: /^spok\.arrayElements\((.*)\)$/,
spokGeRegex: /^spok.ge\((.*)\)$/,
spokGtRegex: /^spok.gt\((.*)\)$/,
spokLeRegex: /^spok.le\((.*)\)$/,
spokLtRegex: /^spok.lt\((.*)\)$/,
spokNeRegex: /^spok.ne\((.*)\)$/,
spokSLRegex: /^spok.stringLength\((.*)\)$/,
spokRangeRegex: /^spok\.range\((\d*),\s?(\d*)\)$/,
spokTestRegex: /^spok\.test\((.*)\)$/,
spokTypeRegex: /^spok\.type\((.*)\)$/
};
const { spokArrayElementsRegex: $f6a33f899b579977$var$spokArrayElementsRegex, spokGeRegex: $f6a33f899b579977$var$spokGeRegex, spokGtRegex: $f6a33f899b579977$var$spokGtRegex, spokLeRegex: $f6a33f899b579977$var$spokLeRegex, spokLtRegex: $f6a33f899b579977$var$spokLtRegex, spokNeRegex: $f6a33f899b579977$var$spokNeRegex, spokRangeRegex: $f6a33f899b579977$var$spokRangeRegex, spokSLRegex: $f6a33f899b579977$var$spokSLRegex, spokTestRegex: $f6a33f899b579977$var$spokTestRegex, spokTypeRegex: $f6a33f899b579977$var$spokTypeRegex } = (0, $aeeceec19374ab2a$export$64c4f432e043d5dd);
const $f6a33f899b579977$export$e29616b55ad743cf = (value)=>{
switch(value){
case "spok.array":
value = (0, $hgUW1$cyspok).array;
break;
// spok.arrayElements
case value.match($f6a33f899b579977$var$spokArrayElementsRegex)?.input:
value = (0, $hgUW1$cyspok).arrayElements(Number(value.match($f6a33f899b579977$var$spokArrayElementsRegex)[1]));
break;
case "spok.boolean":
value = (0, $hgUW1$cyspok).type("boolean");
break;
case "spok.defined":
value = (0, $hgUW1$cyspok).defined;
break;
case "spok.definedObject":
value = (0, $hgUW1$cyspok).definedObject;
break;
case "spok.emptyArray":
value = [];
break;
case "spok.emptyObject":
value = {};
break;
case "spok.function":
value = (0, $hgUW1$cyspok).function;
break;
// spok.ge
case value.match($f6a33f899b579977$var$spokGeRegex)?.input:
value = (0, $hgUW1$cyspok).ge(Number(value.match($f6a33f899b579977$var$spokGeRegex)[1]));
break;
case "spok.gez":
value = (0, $hgUW1$cyspok).gez;
break;
// spok.gt
case value.match($f6a33f899b579977$var$spokGtRegex)?.input:
value = (0, $hgUW1$cyspok).gt(Number(value.match($f6a33f899b579977$var$spokGtRegex)[1]));
break;
case "spok.gtz":
value = (0, $hgUW1$cyspok).gtz;
break;
// spok.le
case value.match($f6a33f899b579977$var$spokLeRegex)?.input:
value = (0, $hgUW1$cyspok).le(Number(value.match($f6a33f899b579977$var$spokLeRegex)[1]));
break;
case "spok.lez":
value = (0, $hgUW1$cyspok).lez;
break;
// spok.lt
case value.match($f6a33f899b579977$var$spokLtRegex)?.input:
value = (0, $hgUW1$cyspok).lt(Number(value.match($f6a33f899b579977$var$spokLtRegex)[1]));
break;
case "spok.ltz":
value = (0, $hgUW1$cyspok).ltz;
break;
// spok.ne
case value.match($f6a33f899b579977$var$spokNeRegex)?.input:
value = (0, $hgUW1$cyspok).ne(Number(value.match($f6a33f899b579977$var$spokNeRegex)[1]));
break;
case "spok.nonEmptyArray":
value = (0, $hgUW1$cyspok).arrayElementsRange(1, 999999999);
break;
case "spok.notDefined":
value = (0, $hgUW1$cyspok).notDefined;
break;
case "spok.number":
value = (0, $hgUW1$cyspok).number;
break;
case "spok.string":
value = (0, $hgUW1$cyspok).string;
break;
// spok.range
case value.match($f6a33f899b579977$var$spokRangeRegex)?.input:
value = (0, $hgUW1$cyspok).range(Number(value.match($f6a33f899b579977$var$spokRangeRegex)[1]), Number(value.match($f6a33f899b579977$var$spokRangeRegex)[2]));
break;
// spok.stringLength
case value.match($f6a33f899b579977$var$spokSLRegex)?.input:
value = (0, $hgUW1$cyspok).test(new RegExp(`.{${value.match($f6a33f899b579977$var$spokSLRegex)[1]}}`));
break;
// spok.test
case value.match($f6a33f899b579977$var$spokTestRegex)?.input:
// extract the regex value from the passed string and execute the match
value = (0, $hgUW1$cyspok).test(new RegExp(value.match($f6a33f899b579977$var$spokTestRegex)[1]));
break;
// spok.type
case value.match($f6a33f899b579977$var$spokTypeRegex)?.input:
value = (0, $hgUW1$cyspok).type(value.match($f6a33f899b579977$var$spokTypeRegex)[1]);
break;
default:
Cypress.log({
name: "literal",
message: `using literal value: "${value}"`
});
}
return value;
};
const { spokRegex: $9842562fd980235e$var$spokRegex } = (0, $aeeceec19374ab2a$export$64c4f432e043d5dd);
function $9842562fd980235e$export$c8fc1961ce6344e5(object) {
const newMatcher = {};
for (const [key, value] of Object.entries(object)){
let result = value;
if (typeof value === "string" && value.match($9842562fd980235e$var$spokRegex)) result = (0, $f6a33f899b579977$export$e29616b55ad743cf)(value);
if (typeof value === "object" && !Array.isArray(value)) {
newMatcher[key] = {};
result = $9842562fd980235e$export$c8fc1961ce6344e5(value);
}
newMatcher[key] = result;
}
return newMatcher;
}
Cypress.Commands.add(// @ts-expect-error issue referring types in `index.d.ts`
"spok", (target, matcher, options = {
strictMode: false
})=>{
const { strictMode: strictMode } = options;
Cypress.log({
name: "spok",
message: strictMode ? "strictMode: true" : "",
consoleProps: ()=>({
target: target
})
});
if (strictMode) (0, $c28a58ceaf5fb2f1$export$302a47ce5e674e39)(target, matcher);
const finalMatcher = (0, $9842562fd980235e$export$c8fc1961ce6344e5)(matcher);
cy.wrap(target, {
log: false
}).should((0, $hgUW1$cyspok)(finalMatcher));
});
//# sourceMappingURL=module.js.map