context("REST Datasource Testing", () => { before(() => { cy.login() cy.createTestApp() }) const datasource = "REST" const restUrl = "https://api.openbrewerydb.org/breweries" it("Should add REST data source with incorrect API", () => { // Select REST data source cy.selectExternalDatasource(datasource) // Enter incorrect api & attempt to send query cy.wait(500) cy.get(".spectrum-Button").contains("Add query").click({ force: true }) cy.intercept('**/preview').as('queryError') cy.get("input").clear().type("random text") cy.get(".spectrum-Button").contains("Send").click({ force: true }) // Intercept Request after button click & apply assertions cy.wait("@queryError") cy.get("@queryError").its('response.body') .should('have.property', 'message', 'request to http://random/%20text? failed, reason: getaddrinfo ENOTFOUND random') cy.get("@queryError").its('response.body') .should('have.property', 'status', 400) }) it("should add and configure a REST datasource", () => { // Select REST datasource and create query cy.selectExternalDatasource(datasource) cy.wait(500) // createRestQuery confirms query creation cy.createRestQuery("GET", restUrl) // Confirm status code response within REST datasource cy.get(".spectrum-FieldLabel") .contains("Status") .children() .should('contain', 200) }) })