@bbc/spartacus
Version:
81 lines (66 loc) • 2.54 kB
JavaScript
;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _testHelpers = require('../../helpers/tests/testHelpers');
var _ResourceHints = require('../../helpers/tests/mocks/ResourceHints');
var _ResourceHints2 = _interopRequireDefault(_ResourceHints);
var _component = require('./component');
var _component2 = _interopRequireDefault(_component);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('Document Component', function () {
var assets = ['http://example.com/file.js'];
var data = { test: 'data' };
var mockHelmetToComponent = function mockHelmetToComponent(element) {
return {
toComponent: jest.fn().mockImplementation(function () {
return element;
})
};
};
var helmet = {
htmlAttributes: mockHelmetToComponent({
lang: 'test'
}),
link: mockHelmetToComponent(_react2.default.createElement('link', {
rel: 'canonical',
href: 'https://www.bbc.com/news/articles/c9rpqy7pmypo'
})),
meta: mockHelmetToComponent(_react2.default.createElement('meta', {
name: 'viewport',
content: 'width=device-width, initial-scale=1, minimum-scale=1'
})),
title: mockHelmetToComponent(_react2.default.createElement(
'title',
null,
'Test title'
))
};
var styleTags = _react2.default.createElement(
'style',
{ 'data-styled-components': 'abc' },
'html { color: red; }'
);
var styleTagsAmp = _react2.default.createElement(
'style',
{ 'amp-custom': '' },
'html { color: red; }'
);
var shallowDocument = function shallowDocument(_ref) {
var isAmp = _ref.isAmp;
return (0, _testHelpers.shallowRender)(_react2.default.createElement(_component2.default, {
assets: assets,
app: '<h1>App!</h1>',
data: _extends({}, data, { isAmp: isAmp }),
helmet: helmet,
styleTags: isAmp ? styleTagsAmp : styleTags,
ResourceHints: _ResourceHints2.default
}));
};
it('should render correctly', function () {
expect(shallowDocument({ isAmp: false })).toMatchSnapshot();
});
it('should render AMP version correctly', function () {
expect(shallowDocument({ isAmp: true })).toMatchSnapshot();
});
});