@kiwicom/smart-faq
Version:
121 lines (92 loc) • 5.38 kB
JavaScript
require("core-js/modules/es.array.find");
require("core-js/modules/es.array.iterator");
require("core-js/modules/es.object.get-own-property-descriptor");
require("core-js/modules/es.object.to-string");
require("core-js/modules/es.string.iterator");
require("core-js/modules/es.weak-map");
require("core-js/modules/web.dom-collections.iterator");
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 _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } 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);
});
});
;