UNPKG

@bbc/spartacus

Version:
81 lines (66 loc) 2.54 kB
'use strict'; 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(); }); });