ember-cli-mirage error: обработчик ничего не возвращает, но обработчик существует
В приложении, с которым я работаю, у нас есть GET
маршрут, который проверяет адрес электронной почты пользователя. Если электронная почта недействительна, сервер отвечает:
-
200
код состояния - заголовки ответа с
Content-Type:application/json; charset=utf-8
- и сами данные ответа - это просто строка "Это письмо недействительно"
Я пытаюсь смоделировать это в ember-cli-mirage
при выполнении:
this.get('/ember_api/v1/validations/validate_email', function() {
return [200, { 'Content-Type': 'application/json' }, "This email is invalid"];
// also tried this:
// return new Mirage.Response(200, { 'Content-Type': 'application/json' }, JSON.stringify({"message":"This email is invalid"}));
// and tried this:
// return "This email is invalid";
});
Сам тест является нажатием кнопки, которая запускает этот запрос:
GET "/ember_api/v1/validations/validate_email?email=fakey%40fakefakefake.com&skip_uniq=true"
... и ошибка, которую я получаю:
Претендент перехватил GET /ember_api/v1/validations/validate_email?email=tom%40gmail.com&skip_uniq=true, но обнаружил ошибку: обработчик ничего не возвратил для /ember_api/v1/validations/validate_email?email=tom%40gmailiqt_ru_ru Не забудьте вернуть [статус, заголовки, тело]; в вашем маршруте обработчик.
Это просит меня return [status, headers, body]
, но я делаю это в моем обработчике, и он по-прежнему выдает ошибку.
Это действительно проблема с ответом? Нужно ли мне редактировать мой API, чтобы он действительно возвращал объект в формате JSON API, чтобы я мог написать тест таким образом?
Я чувствую, что должен быть в состоянии вернуть строку в моем тесте, так как это то, что делает приложение. Любая помощь приветствуется.
1 ответ
this.get
Вы используете версию Mirage. Вы также можете использовать this.pretender.get
который должен работать с вашим текущим примером кода...