Допишем тесты для кода добавленого в статье
Подпрвляем тесты после изменений.
Устанасливаем пакет для проверки 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
На странице сервера в заголовки передавать статусы.

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

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

Добавим тесты для проверки отправление данных кириллицей. Нашел такой недочет когда ввел «Александр Овечкин» в форме
Это правиться encodeURI
Поправил этот баг в методе создании ссылки.
Добавил тесты для поиска по GET запросу. Добавился функционал в manageRequest.js если приходит пустой запрос.

Код доступен по ссылке — ветка server
Почитать больше про тесты с Nodejs и Mocha можно в этой статье
Добавить комментарий