Отправка POST-запроса как XHR в Cypress - PullRequest
0 голосов
/ 02 апреля 2020

Я тестирую API приложения с помощью Cypress, мне нужно отправить запрос с данными формы контента. Пока я знаю, что Cypress cy.request не поддерживает этот тип данных, поэтому я использую пользовательскую команду:

Cypress.Commands.add('form_request', (method, url, formData, done) => {
let xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.responseType = 'json';
xhr.onload = function() {
    done(xhr);
    };
xhr.send(formData);
})

, и мой тест выглядит так:

import {baseUrl} from '../../support/config'

let formData = new FormData();

formData.append('name', 'Edgar');
formData.append('email', 'some@mail.com');

let method, url;

describe('ENDPOINT: /v1/send_message/', () => {

    describe('Positive scenario for sending contact form', () => {
        it('Verify if POST returns status 201 and body', () => {
            method = 'POST';
            url = `${baseUrl}/v1/send_message/`; 


            cy.form_request(method, url, formData, function (response){
            expect(response.status).to.eq(201);
            expect(formData.get('name')).to.eq(response.response.name);
            expect(formData.get('email')).to.eq(response.response.email);
            });
        })

но когда я запускаю его с открытым npx cypress, все мои тесты всегда проходят, даже при наличии ошибок утверждения ... Я трачу много времени на отправку xhr с помощью cypress, и я думал, что наконец-то нашел решение, что мне делать дальше? Результаты кипариса

...