Тесты для файла server.js приложения hockey-player-search

Допишем тесты для кода добавленого в статье

Подпрвляем тесты после изменений.

Устанасливаем пакет для проверки http в mocha:

npm i chai-http --save-dev

Добавим экспорт модуля сервера в файл server.js
В конце файла такую строку:

module.exports = server;

Создаём файл server.spec.js в каталоге test
Добавим проверку статуса и типа главной страницы

'use strict';

const chai = require('chai');
const chaiHttp = require('chai-http');
const app = require('./../src/server');

chai.use(chaiHttp);
chai.should();

describe('Server app', () => {
  describe('GET /', () => {
    it(' start app and get index page', done => {
      chai.request(app)
        .get('/')
        .end((err, res) => {
          res.should.have.status(200);
          res.body.should.be.a('object');
          res.type.should.be.eq('text/html');
          done();
        });
    });
  });
});

Запускаем . Тест успешно пройден.
Но проверка на покрытие тестами показывает, что только 17%

Запуск первого теста

Добавляем обработку Страница не найдена.
Нужно добавить коды статусов и страницу в метод manageRequest.js
На странице сервера в заголовки передавать статусы.

Покрытие тестами server.js стрвница не найдена
Второй тест на страницу со статусом 404 — не найдена

Функционал страница не найдена был добавлен уже по принципу TDD — сначала тест а потом кодинг.

Покрытие тестами server.js
Сам сервер покрыт тестами на 66%. Осталась POST часть с формой.

Добавил проверку на отрправление запроса пустой формы(можно конечно это запретить и на фронтенд части ) но не дам даже возможности обработки таких запросов.

Покрытие тестами server.js
Теперь server.js покрыли тестами на 93%

Добавим тесты для проверки отправление данных кириллицей. Нашел такой недочет когда ввел «Александр Овечкин» в форме

Это правиться encodeURI

Поправил этот баг в методе создании ссылки.

Добавил тесты для поиска по GET запросу. Добавился функционал в manageRequest.js если приходит пустой запрос.

Покрытие тестами manageRequest.js
Теперь и модуль manageRequest.js покрыт тестами на 80%

Код доступен по ссылке — ветка server

Почитать больше про тесты с Nodejs и Mocha можно в этой статье

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.