Why intercepting network validates API integration in Cypress - Automation Benefits in Action
describe('API Integration Validation via Network Interception', () => { it('should intercept API call and validate request and response', () => { // Intercept the API call and alias it cy.intercept('GET', '/api/data').as('getData'); // Visit the page that triggers the API call cy.visit('/data-page'); // Trigger the action that causes the API call cy.get('button#loadData').click(); // Wait for the API call to complete cy.wait('@getData').then(({ request, response }) => { // Assert request URL and method expect(request.method).to.equal('GET'); expect(request.url).to.include('/api/data'); // Assert response status code expect(response.statusCode).to.equal(200); // Assert response body contains expected data expect(response.body).to.have.property('items').and.be.an('array'); expect(response.body.items.length).to.be.greaterThan(0); }); }); });
This Cypress test intercepts the API call to /api/data using cy.intercept() and assigns it an alias @getData. It then visits the page that triggers the API call and clicks the button to load data.
Using cy.wait('@getData'), the test waits for the API call to complete and accesses both the request and response objects.
Assertions check that the request method is GET and the URL contains the expected endpoint. It also verifies the response status code is 200, indicating success, and that the response body contains an items array with at least one element.
This approach validates that the frontend correctly integrates with the backend API by confirming the request is sent properly and the response data is as expected.
Now add data-driven testing with 3 different API endpoints and verify each response