UNPKG

@push.rocks/smartexpect

Version:

A testing library to manage expectations in code, offering both synchronous and asynchronous assertion methods.

35 lines 3.31 kB
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