Testing_Jest_library

0

Описание

Тестирование. Библиотека Jest

Языки

  • TypeScript94,7%
  • JavaScript5,3%
README.md

Курс Node.js

Блок: Nest.js

Тема: Тестирование. Библиотека Jest

Домашнее задание
Задачи №1, №2, №3
Автор: Гречишников О.Н. группа: NDJS-ASINHR

Возникшие трудности:

ПРОБЛЕМЫ ПРИ ОТРАБОТКЕ МЕТОДОВ CRUD ПРИ РАБОТЕ С БД
Проблема:
Не срабатывал метод @Post('/create') create в book.controller из Postman - ошибка:

Решение:
Не верный формат данных при отправке. Нужно: Вносить данные в

params-> x-www-form-urlencoded

Проблема:
Не срабатывает метод @Get('/:id') getBook в book.controller из Postman - ошибка:
В Postman:
{ "statusCode": 500, "message": "Internal server error" }
в терминале:
ERROR [ExceptionsHandler] CastError: Cast to ObjectId failed for value "{ _id: 'id=i691f632aa939a126b1e2e630' }" (type Object) at path "_id" for model "Book"
Решение:

  1. Путь в контроллере должен быть: '/:id'.
  2. Запрос в Postman: http://localhost:3001/book/691f632aa939a126b1e2e630

Проблема:
Не срабатывает метод @Put('/:id') update в book.controller.
{
"statusCode": 500, "message": "Internal server error"
}
в терминале:
ERROR [ExceptionsHandler] CastError: Cast to ObjectId failed for value "i691f632aa939a126b1e2e630" (type string) at path "_id" for model "Book" reason: BSONError: input must be a 24 character hex string, 12 byte Uint8Array, or an integer
Решение:
Не корректный id. должен быть 691f632aa939a126b1e2e630 по факту i691f632aa939a126b1e2e63. Лишняя буковка i.
ОЧЕНЬ ЧАСТО ВСТРЕЧАЕТСЯ, У МЕНЯ!!!!! ДОБАВИТЬ В GUARD!!!!

ПРОБЛЕМЫ ПРИ ТЕСТИРОВАНИИ:

Проблема:
Nest can't resolve dependencies of the BookService (BookModel, ?). Please make sure that the argument "DatabaseConnection" at index [1] is available in the RootTestModule context.
Показывает ошибку здесь:

Решение:
beforeEach должен выглядеть так:

Проблема:
Не проходит тест метода Put.
Решение:
Метод Mongoose findOneAndUpdate() по умолчанию возвращает оригинальный документ, тот, что был до обновления. Нужно добавить опцию { new: true } - она заставит Mongoose вернуть обновленный документ:

Проблема:
Не проходит тест метода Delete.
Решение:
тест ожидает, что в ответе на удаление не будет объекта с заголовком “To Be Deleted”. Но Ваш сервис (как и должно быть) возвращает именно этот удаленный объект. Поэтому response.body.title равен “To Be Deleted”, и тест падает.
Тест должен выглядеть так:
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment