typescript - Skapa anpassat kommando i Cypress som innehåller assert-/kedjekommandon
Jag vill skapa ett anpassat kommando som innehåller statuskodpåståenden:
cy.wait('@interceptedEndpoint')
.its('response.statusCode')
.should('eq', 200)
de två sista raderna är vad jag vill ha inuti det anpassade kommandot
.its('response.statusCode')
.should('eq', 200)
Min initiala idé är nedan, vilket uppenbarligen inte skulle fungera
Cypress.commands.add('checkResponse', {prevSubject: 'element'}, () => {
.its('response.statusCode')
.should('eq', 200)
})
Vad saknar jag ovan för att göra skapandet av det anpassade kommandot korrekt?
REDIGERA: Utöver Udo.Kiers svar. Jag behövde sätta prevSubject till true för att få det att acceptera svaret för det förväntade påståendet.
Svar #1
Du kan försöka lägga till subject-parametern,
Cypress.commands.add('checkResponse', {prevSubject: true}, (subject) => {
cy.wrap(subject)
.its('response.statusCode')
.should('eq', 200)
})
...
cy.wait('@interceptedEndpoint').checkResponse()
Alternativt, med väntan inuti anpassad kommando:
Cypress.commandsCommands.add('waitAndCheckResponse', (subjectAlias) => {
cy.wait(subjectAlias)
.its('response.statusCode')
.should('eq', 200);
})
...
cy.waitAndCheckResponse('@interceptedEndpoint')
