Enhance intercept api command #9607
Merged
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.
Problem:
From beforeEach, intercepts & waits on "/api/tenants" endpoint (matched with regex "//api/tenants.*/"), method is POST here with alias name as "tenantOperationsApi":

When the API method changes(PUT), the wait fails due to validation relying solely on the alias name:

After:
Intercepts and waits when the API method is different.
Waits on POST:


Waits on PUT(key registered before was post-tenantOperationsApi):
Follow up work from here
To conditionally wait only when a request is actually initiated, allowing
interceptApi
to be reused across support commands, eliminating the need to intercept and wait in each test.Why use
Cypress.env
for just a flag and not a let variable likelet requestIntercepted
?When !isAlreadyRegistered is true (first registration) - works as expected:
cy.then()
block sees the updated value - trueWhen !isAlreadyRegistered is false (already registered) - won't work as expected due to variable scope and closure in JavaScript:
cy.then()
@miq-bot assign @jrafanie
@miq-bot add-label cypress
@miq-bot add-label test
@miq-bot add-label enhancement