react-ssr
Version:
A simplified solution to React server side rendering.
82 lines (61 loc) • 2.43 kB
JavaScript
;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _serverRender = require('./serverRender');
var _serverRender2 = _interopRequireDefault(_serverRender);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
jest.mock('debug');
test('calls res to send basic html immediately back if disable is enabled', function () {
var res = { send: jest.fn() };
var options = {
disable: true,
Html: function Html() {
return _react2.default.createElement('div', null);
}
};
(0, _serverRender2.default)(options, { url: '' }, res);
expect(res.send).toHaveBeenCalled();
expect(res.send).toHaveBeenCalledWith('<!DOCTYPE html><div data-reactroot=""></div>');
});
test('calls res to send basic html immediately back if url is in ignore array', function () {
var res = { send: jest.fn() };
var options = {
Html: function Html() {
return _react2.default.createElement('div', null);
},
ignore: ['/test']
};
(0, _serverRender2.default)(options, { url: '/test' }, res);
expect(res.send).toHaveBeenCalled();
expect(res.send).toHaveBeenCalledWith('<!DOCTYPE html><div data-reactroot=""></div>');
});
test('calls res to send basic html immediately back if url is stripped of query and is in ignore array', function () {
var res = { send: jest.fn() };
var options = {
Html: function Html() {
return _react2.default.createElement('div', null);
},
ignore: ['/test']
};
(0, _serverRender2.default)(options, { url: '/test?exampleQuery=true' }, res);
expect(res.send).toHaveBeenCalled();
expect(res.send).toHaveBeenCalledWith('<!DOCTYPE html><div data-reactroot=""></div>');
});
test('it calls res.sendStatus with 404 status code when given path with extension', function () {
var res = { sendStatus: jest.fn() };
var options = {
Html: 'div'
};
(0, _serverRender2.default)(options, { url: '/test.js' }, res);
expect(res.sendStatus).toHaveBeenCalled();
expect(res.sendStatus).toHaveBeenCalledWith(404);
});
// test('it calls debug when there is no matched pathname in url', () => {
// const res = { sendStatus: jest.fn() }
// const options = {
// Html: 'div'
// }
// serverRender(options, {url: 'www.vodafone.co.uk'}, res)
// expect(debug).toHaveBeenCalled()
// expect(debug).toHaveBeenCalledWith('Parsed URL has no path name.')
// })