@push.rocks/smartexpect
Version:
A testing library to manage expectations in code, offering both synchronous and asynchronous assertion methods.
35 lines • 3.31 kB
JavaScript
import { Assertion } from '../smartexpect.classes.assertion.js';
/**
* Namespace for string-specific matchers
*/
export class StringMatchers {
constructor(assertion) {
this.assertion = assertion;
}
toStartWith(prefix) {
return this.assertion.customAssertion((value) => value.startsWith(prefix), `Expected string to start with "${prefix}"`);
}
toEndWith(suffix) {
return this.assertion.customAssertion((value) => value.endsWith(suffix), `Expected string to end with "${suffix}"`);
}
toInclude(substring) {
return this.assertion.customAssertion((value) => value.includes(substring), `Expected string to include "${substring}"`);
}
toMatch(regex) {
return this.assertion.customAssertion((value) => regex.test(value), `Expected string to match ${regex}`);
}
toBeOneOf(values) {
return this.assertion.customAssertion((value) => values.includes(value), `Expected string to be one of ${JSON.stringify(values)}`);
}
/** Length check for strings */
toHaveLength(length) {
return this.assertion.customAssertion((value) => value.length === length, `Expected string to have length ${length}`);
}
/**
* Alias for empty string check
*/
toBeEmpty() {
return this.assertion.customAssertion((value) => value.length === 0, `Expected string to be empty`);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmFtZXNwYWNlcy9zdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR2hFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsU0FBK0I7UUFBL0IsY0FBUyxHQUFULFNBQVMsQ0FBc0I7SUFBRyxDQUFDO0lBRXZELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQ25DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBRSxLQUFnQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFDL0Msa0NBQWtDLE1BQU0sR0FBRyxDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQ25DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBRSxLQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0MsZ0NBQWdDLE1BQU0sR0FBRyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQjtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUNuQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUUsS0FBZ0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ2hELCtCQUErQixTQUFTLEdBQUcsQ0FDNUMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUNuQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFlLENBQUMsRUFDdEMsNEJBQTRCLEtBQUssRUFBRSxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUNuQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUUsTUFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBZSxDQUFDLEVBQ3pELGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ3pELENBQUM7SUFDSixDQUFDO0lBQ0QsK0JBQStCO0lBQy9CLFlBQVksQ0FBQyxNQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQ25DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBRSxLQUFnQixDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQzlDLGtDQUFrQyxNQUFNLEVBQUUsQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFDRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUNuQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUUsS0FBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUN6Qyw2QkFBNkIsQ0FDOUIsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9