UNPKG

@kiwicom/smart-faq

Version:

109 lines (86 loc) 4.74 kB
"use strict"; require("core-js/modules/es.array.find"); require("core-js/modules/es.object.get-own-property-descriptor"); var _enzyme = require("enzyme"); var _reactTestRenderer = require("react-test-renderer"); var React = _interopRequireWildcard(require("react")); var _relayTestUtils = require("relay-test-utils"); var _reactRelay = require("react-relay"); var _Alert = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Alert")); var _BoardingPassesBoxWrapper = _interopRequireDefault(require("../BoardingPassesBoxWrapper")); var _BoardingPassesBoxContent = _interopRequireDefault(require("../BoardingPassesBoxContent")); var _BoardingPassesList = _interopRequireDefault(require("../BoardingPassesList")); var _BoardingPassesItem = _interopRequireDefault(require("../BoardingPassesItem")); var _graphql; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } var renderBoardingPasses = function renderBoardingPasses(queryProps) { var props = queryProps.props, error = queryProps.error; var boardingPassesInfo = props === null || props === void 0 ? void 0 : props.nearestBooking; return React.createElement(_BoardingPassesBoxWrapper.default, { showSubtitle: !error }, React.createElement(_BoardingPassesBoxContent.default, { boardingPassesInfo: boardingPassesInfo, error: error })); }; describe('BoardingPassesInfo', function () { var environment = (0, _relayTestUtils.createMockEnvironment)(); var TestRenderer = function TestRenderer() { return React.createElement(_reactRelay.QueryRenderer, { environment: environment, query: _graphql || (_graphql = function _graphql() { var node = require("./__generated__/BoardingPassesInfoTestQuery.graphql"); if (node.hash && node.hash !== "d8075b8c58013db6a6d7827b62ab939f") { console.error("The definition of 'BoardingPassesInfoTestQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."); } return require("./__generated__/BoardingPassesInfoTestQuery.graphql"); }), variables: { brand: 'kiwicom' }, render: renderBoardingPasses }); }; it('Should display the loading animation content when it is loading', function () { var dataLoading = { boardingPassesInfo: null, error: null }; var wrapper = (0, _enzyme.mount)(React.createElement(_BoardingPassesBoxWrapper.default, { showSubtitle: !dataLoading.error }, React.createElement(_BoardingPassesBoxContent.default, { boardingPassesInfo: dataLoading.boardingPassesInfo, error: dataLoading.error }))); expect(wrapper.find('svg > title').text()).toEqual('Loading interface...'); }); it('Should render the card with an error message when there is a GraphQL error', function () { var component = (0, _reactTestRenderer.create)(React.createElement(TestRenderer, null)).root; // Simulate a GraphQL error environment.mock.rejectMostRecentOperation(new Error('Mordor is not a valid booking destination')); var errorBox = component.findByType(_Alert.default); var Title = errorBox.props.title; expect(errorBox).toBeDefined(); expect(Title.props.t).toBe('smartfaq.boarding_pass_info.content.error_alert.title'); }); it('Should render the card with a valid result', function () { var component = (0, _reactTestRenderer.create)(React.createElement(TestRenderer, null)).root; // Mock a GraphQL response with a sample location area name (which renders on the result) environment.mock.resolveMostRecentOperation(function (operation) { return _relayTestUtils.MockPayloadGenerator.generate(operation, { LocationArea: function LocationArea() { return { name: 'Oslo' }; } }); }); var resultsElement = component.findByType(_BoardingPassesList.default); var resultsItem = component.findByType(_BoardingPassesItem.default); var errorBox = component.findAllByType(_Alert.default); expect(resultsElement).toBeDefined(); expect(resultsItem).toBeDefined(); expect(resultsElement.children).toHaveLength(1); expect(errorBox).toHaveLength(0); }); });