Skip to content

Решение тестового задания (Константин Вяткин)

Konstantin Vyatkin requested to merge tinovyatkin/test:vkv into master

Задача получения токена по логину/паролю напомнила вполне стандартный вариант JWT аутентификации, поэтому вместо реализации вашей функции "в лоб", я реализовал полную поддержку JWT в соответствии с рекомендациями авторов фреймоворка NestJs (соответственно randomstring и UserTokenService, etc, убраны за ненадобностью).

Покрытие юнит-тестами и e2e тестами всего кода 100%.

В качестве примера удобства практического использования данного решения я нарисовал заглушку контролера devices для Apple Wallet и добавил соответсвующий тест/демонстрацию в test/v1.e2e-spect.ts

Несколько изменений в конфигурации проекта, не имеющих отношения к выполнению задания, просто чтобы было понятней:

  • Обновлены все dependencies до их последний версий (в том числе сам NestJS и Typescript)
  • В Typescript включен strict режим и incremental build.
  • Оптимизирован (вынесен в один внешний файл) конфиг Jest, убран конфиг для e2e тестов заменен на один параметер в CLI (таким образом заработал сбор coverage в интеграционных тестах)
  • Убраны ненужные dependencies, включая Nodemon - вместо него везде использован Nest CLI
  • Переключено на ESLint с deprecated TSLint (вашему Codeclimate это слегка не нравится, но он там честно признается, что устарел - https://github.com/codeclimate/codeclimate-eslint/issues/442)
  • Заменил Express на Fastify, убрал модуль App, сделав основным версионный модуль
Edited by Konstantin Vyatkin

Merge request reports

Loading