Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation/Description of the PR
module hopeThat
hopeThat
is a utility function for CodeceptJS tests that allows for soft assertions. It enables conditional assertions without terminating the test upon failure. This is particularly useful in scenarios like A/B testing, handling unexpected elements, or performing multiple assertions where you want to collect all results before deciding on the test outcome.Use Cases
Examples
Multiple Conditional Assertions
Add the assertion library:
Use
hopeThat
with assertions:Optional Click
Performs a soft assertion within CodeceptJS tests.
This function records the execution of a callback containing assertion logic. If the assertion fails, it logs the failure without stopping the test execution. It is useful for scenarios where multiple assertions are performed, and you want to evaluate all outcomes before deciding on the test result.
Usage
async
function hopeThat
@param {Function} callback - The callback function containing the soft assertion logic.
@returns {Promise<boolean | any>} - Resolves to
true
if the assertion is successful, orfalse
if it fails.Examples
Multiple Conditional Assertions:
Optional Click:
Applicable helpers:
Applicable plugins:
Type of change
Checklist:
npm run docs
)npm run lint
)npm test
)