Bird
Raised Fist0
Cypresstesting~10 mins

Waiting for requests (cy.wait with alias) in Cypress - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to wait for the aliased request before continuing the test.

Cypress
cy.intercept('GET', '/api/data').as('getData');
cy.visit('/dashboard');
cy.[1]('@getData');
Drag options to blanks, or click blank then click option'
Aget
Bclick
Cwait
Dvisit
Attempts:
3 left
💡 Hint
Common Mistakes
Using cy.get or cy.click instead of cy.wait to wait for the request.
Not using the alias string with '@' prefix.
2fill in blank
medium

Complete the code to alias a POST request to '/api/login' for later waiting.

Cypress
cy.intercept('POST', [1]).as('loginRequest');
Drag options to blanks, or click blank then click option'
A'/api/data'
B'/api/login'
C'/api/logout'
D'/api/user'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong URL path for the alias.
Forgetting to put the URL in quotes.
3fill in blank
hard

Fix the error in the code to correctly wait for the aliased request.

Cypress
cy.intercept('GET', '/api/items').as('fetchItems');
cy.visit('/items');
cy.wait([1]);
Drag options to blanks, or click blank then click option'
A@fetchItems
B'fetchItems'
CfetchItems
D'@fetchItems'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the alias without '@' prefix.
Not putting the alias in quotes.
Using the alias as a variable instead of a string.
4fill in blank
hard

Fill both blanks to alias a PUT request and wait for it after clicking a button.

Cypress
cy.intercept({ method: [1], url: '/api/update' }).as('updateRequest');
cy.get('button#save').click();
cy.wait([2]);
Drag options to blanks, or click blank then click option'
A'PUT'
B'POST'
C'@updateRequest'
D'@saveRequest'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong HTTP method like POST instead of PUT.
Waiting for the wrong alias string.
5fill in blank
hard

Fill all three blanks to intercept a DELETE request, alias it, and wait after triggering the delete.

Cypress
cy.intercept({ method: [1], url: [2] }).as([3]);
cy.get('button.delete').click();
cy.wait('@deleteRequest');
Drag options to blanks, or click blank then click option'
A'DELETE'
B'/api/delete-item'
C'deleteRequest'
D'/api/remove-item'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong HTTP method like POST or GET.
Using the wrong URL path.
Using an alias name that does not match the wait command.

Practice

(1/5)
1. What is the main purpose of using cy.wait() with an alias in Cypress tests?
easy
A. To log the test results to the console
B. To pause the test until a specific network request finishes
C. To reload the page automatically
D. To skip a test step temporarily

Solution

  1. Step 1: Understand cy.wait() with alias

    The cy.wait() command pauses the test until the network request with the given alias completes.
  2. Step 2: Purpose of waiting for requests

    This ensures the test runs only after the needed data is loaded, making tests reliable.
  3. Final Answer:

    To pause the test until a specific network request finishes -> Option B
  4. Quick Check:

    Waiting for request = pause test until done [OK]
Hint: Wait pauses test until named request finishes [OK]
Common Mistakes:
  • Thinking cy.wait skips steps
  • Confusing cy.wait with page reload
  • Using cy.wait without alias
2. Which of the following is the correct syntax to alias a network request in Cypress?
easy
A. cy.intercept('/api/data').alias('getData')
B. cy.route('/api/data').alias('getData')
C. cy.wait('/api/data').as('getData')
D. cy.intercept('/api/data').as('getData')

Solution

  1. Step 1: Identify correct alias method

    In Cypress, cy.intercept() is used to spy or stub requests, and .as() assigns an alias.
  2. Step 2: Check syntax correctness

    cy.intercept('/api/data').as('getData') uses cy.intercept('/api/data').as('getData'), which is the correct syntax.
  3. Final Answer:

    cy.intercept('/api/data').as('getData') -> Option D
  4. Quick Check:

    Alias uses .as() after intercept [OK]
Hint: Use .as() to alias intercept, not .alias() [OK]
Common Mistakes:
  • Using .alias() instead of .as()
  • Trying to alias cy.wait instead of cy.intercept
  • Using deprecated cy.route instead of cy.intercept
3. Given the code below, what will be the output in the test if the request takes 500ms to complete?
cy.intercept('GET', '/users').as('getUsers')
cy.visit('/users')
cy.wait('@getUsers').then(({ response }) => {
  console.log(response.status)
})
medium
A. 200
B. undefined
C. 500
D. 404

Solution

  1. Step 1: Understand intercept and wait behavior

    The cy.intercept() spies on the GET request to '/users' and aliases it as 'getUsers'.
  2. Step 2: Analyze the wait and response

    cy.wait('@getUsers') waits for the request to finish, then logs the response.status. A successful GET usually returns 200.
  3. Final Answer:

    200 -> Option A
  4. Quick Check:

    Wait logs response status 200 [OK]
Hint: Wait returns response object with status [OK]
Common Mistakes:
  • Confusing request duration with status code
  • Expecting wait to return undefined
  • Assuming 404 if request is slow
4. Identify the error in the following Cypress test code:
cy.intercept('POST', '/login').as('loginRequest')
cy.get('button#submit').click()
cy.wait('loginRequest')
medium
A. Missing @ symbol in cy.wait alias
B. Incorrect HTTP method in intercept
C. Alias name should be in double quotes
D. cy.get selector is invalid

Solution

  1. Step 1: Check cy.wait usage

    The cy.wait() command requires the alias to be prefixed with '@' to identify the request alias.
  2. Step 2: Identify the error

    The code uses cy.wait('loginRequest') missing the '@', which causes Cypress to not recognize the alias.
  3. Final Answer:

    Missing @ symbol in cy.wait alias -> Option A
  4. Quick Check:

    Alias in cy.wait needs '@' prefix [OK]
Hint: Always prefix alias with '@' in cy.wait [OK]
Common Mistakes:
  • Omitting '@' before alias in cy.wait
  • Using wrong HTTP method in intercept
  • Thinking quotes affect alias recognition
5. You want to test that after clicking a button, a POST request to '/submit' completes successfully before checking the page content. Which is the best way to write this in Cypress?
hard
A. cy.intercept('POST', '/submit').as('submitRequest') cy.wait('@submitRequest') cy.get('button#send').click() cy.contains('Success').should('be.visible')
B. cy.get('button#send').click() cy.wait('@submitRequest') cy.intercept('POST', '/submit').as('submitRequest') cy.contains('Success').should('be.visible')
C. cy.intercept('POST', '/submit').as('submitRequest') cy.get('button#send').click() cy.wait('@submitRequest') cy.contains('Success').should('be.visible')
D. cy.get('button#send').click() cy.contains('Success').should('be.visible') cy.intercept('POST', '/submit').as('submitRequest') cy.wait('@submitRequest')

Solution

  1. Step 1: Setup intercept before action

    You must call cy.intercept() and alias before triggering the request by clicking the button.
  2. Step 2: Wait for request before assertions

    Use cy.wait('@submitRequest') after clicking to pause until the POST completes, then check page content.
  3. Final Answer:

    Intercept first, click, wait, then assert success message -> Option C
  4. Quick Check:

    Intercept before action, wait after click [OK]
Hint: Always intercept before triggering request, then wait [OK]
Common Mistakes:
  • Waiting before intercepting
  • Asserting before request finishes
  • Interception after click triggers request
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard