Как мне выбрать почтовый запрос с полезной нагрузкой

Я использую модуль npm wheresrhys fetch-mock для запуска функционального тестирования в моем приложении. Я хотел бы смоделировать выборку с методом "POST" и конкретной полезной нагрузки.

Это будет выглядеть примерно так:

fetchMock.mock({
        routes: {
            name: 'LoginSuccess',
            matcher: "https://myurl",
            method: 'POST',
            payload: {
                params:{User: "ABCDE@gmail.com", Password: "password"}
            },
            response: {  
                result:{
                    message: "Successful login", 
                    credentials: "XXXXXXXXXXXXX"
                }
            }
        }
    });

Я хотел бы проверить полезность моей выборки и дать ответ соответственно. Например, я мог бы смоделировать один логин, где пользователь вводит неправильный пароль, затем он пытается снова и предоставляет правильную информацию, и ему предоставляется доступ. Тот же URL, разные полезные нагрузки, разные ответы.

Можно ли сделать это? Я знаю, что можно проверить метод выборки, но я бы хотел сделать то же самое с полезной нагрузкой.

Или есть лучший способ сделать это?

Я не нашел решения в файле readme модуля или в разделе теста пакета fetch-mock.

1 ответ

Решение
fetchMock.mock({
    routes: [{
            name: 'LoginSuccess',
            matcher: function(url, opts) {
                return (url=="https://myurl" && opts && opts.params && opts.params.User=="ABCDE@gmail.com" && opts.params.Password=="password");
            },
            response: {  
                result:{
                    message: "Successful login", 
                    credentials: "XXXXXXXXXXXXX"
                }
            }
        }, {
            name: 'LoginFail',
            matcher: function(url, opts) {
                return (url=="https://myurl" && opts && opts.params && opts.params.User=="ABCDE@gmail.com" && opts.params.Password!=="password");
            },
            response: { 
                result:{
                    message: "Unsuccessful login"
                }
            }
    }]
});
Другие вопросы по тегам