FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
pinterest-for-woocommerce
/
assets
/
source
/
tests
Edit File: custom-matchers.js
expect.extend( { /** * Custom matcher to check the presence and optionally the value of a search query param in the given location. * * @param {Location} receivedLocation Location to be checked, for example `window.location`. * @param {string} param Parameter to check the presence of. * @param {string} [value] Value of the parameter to be checked. * @return {{message: string, pass: boolean}} Jest compatible matcher output. */ toContainURLSearchParam( receivedLocation, param, value ) { const hasValue = arguments.length === 3; // Sanitize the query params. const params = new URLSearchParams( receivedLocation.search ); let message = `Expected location ${ this.utils.printReceived( receivedLocation.toString() ) }`; let pass = true; // Colorize the param name. const expectedParam = this.utils.printExpected( param ); const receivedParam = this.utils.printReceived( param ); // Check the presence only. if ( ! hasValue ) { if ( params.has( param ) ) { message += ` not to have param '${ receivedParam }'`; } else { message += ` to have param '${ expectedParam }'`; pass = false; } return { message: () => message, pass }; } // Check the value. const actualValue = params.get( param ); // Colorize the values. const expectedValue = this.utils.printExpected( value ); const receivedValue = this.utils.printReceived( actualValue ); // We check the strict equality directly, // we may consider using module:expect/build/matchers.equals to support `extand.any()` & co. if ( actualValue === value ) { message += `not to have param '${ receivedParam }' of '${ receivedValue }'`; } else { message += `to have param '${ expectedParam }' of '${ expectedValue }', but got '${ receivedValue }'`; pass = false; } return { message: () => message, pass }; }, } );
Save
Back