UNPKG

@carbon/ibm-cloud-cognitive-cdai

Version:
120 lines (117 loc) 6.69 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _ = require("."); var props = _interopRequireWildcard(require("./test_assets/testProps.js")); var _IDHelper = require("../../component_helpers/IDHelper"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } // // Copyright IBM Corp. 2020, 2020 // // This source code is licensed under the Apache-2.0 license found in the // LICENSE file in the root directory of this source tree. // var _require = require('gherkin-jest'), cucumber = _require.cucumber; var TASK_BASIC = 'Basics'; var TASK_RECENT = 'Recent tasks'; var TASK_ACC = 'Accelerators'; var TASK_CUSTOM = 'Custom'; var IDE_CARD = 'IDE_CARD'; var testSets = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, TASK_BASIC, props.gettingStartedSetFunc), TASK_RECENT, props.recentTasksSetFunc), TASK_ACC, props.cardWidthSetFunc), TASK_CUSTOM, props.customCardContentSetFunc), IDE_CARD, props.tasksForEachIdeCardType); cucumber.defineRule('Setup of the IdeHome world', function (world) { world.componentToRender = _.IdeHome; }); var setHelper = function setHelper() { var currentProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var newSetToAdd = arguments.length > 1 ? arguments[1] : undefined; if (currentProps.sets) { return { sets: currentProps.sets.concat(newSetToAdd) }; } else { return { sets: [newSetToAdd] }; } }; var getSetForActivity = function getSetForActivity() { var taskName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : TASK_BASIC; var interactFunction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () { return true; }; return testSets[taskName](interactFunction); }; cucumber.defineRule('a set of activities called {string}', function (world, activitySet) { world.ideInteractionCb = jest.fn(); world.defaultProps = props.coreConfigFunc(); world.props = setHelper(world.props, getSetForActivity(activitySet, world.ideInteractionCb)); }); cucumber.defineRule('the {string} set is the selected tab', function (world, setName) { var propsToCheckFor = getSetForActivity(setName, world.ideInteractionCb); var indexOfSet = world.props.sets.findIndex(function (set) { return set.id === propsToCheckFor.id; }); expect(world.mountedComponent.find((0, _IDHelper.idAttributeSelector)("IdeHome-Tabs")).props().selected).toBe(indexOfSet); }); cucumber.defineRule('the {string} activities set is rendered', function (world, setName) { var propsToCheckFor = getSetForActivity(setName, world.ideInteractionCb); var tabSelector = (0, _IDHelper.idAttributeSelector)("IdeHome-Tab-".concat(propsToCheckFor.id)); // confirm a tab for this set is present expect(world.mountedComponent.exists(tabSelector)).toBe(true); world.mountedComponent.simulate('click'); // click it to get items on screen }); cucumber.defineRule('the {string} activities set is rendered only', function (world, setName) { var propsToCheckFor = getSetForActivity(setName, world.ideInteractionCb); var noMatchSelector = (0, _IDHelper.idAttributeSelector)("IdeHome-Tab-".concat(propsToCheckFor.id)); // as only one set, there should be no Tabs expect(world.mountedComponent.exists(noMatchSelector)).toBe(false); }); cucumber.defineRule('the selected tab is changed to {string}', function (world, setName) { var propsToCheckFor = getSetForActivity(setName, world.ideInteractionCb); var tabSelector = (0, _IDHelper.idAttributeSelector)("IdeHome-Tab-".concat(propsToCheckFor.id)); // confirm a tab for this set is present expect(world.mountedComponent.exists(tabSelector)).toBe(true); world.mountedComponent.find(tabSelector).prop('onClick')({ type: 'click' }); // trigger the click handler directly, rather than using simulate (assume browser passes event through) }); cucumber.defineRule('the callback is invoked with {string} task id as its parameter', function (world, taskId) { expect(world.ideInteractionCb).toBeCalled(); expect(world.ideInteractionCb.mock.calls[0][0]).toEqual(taskId); }); cucumber.defineRule('the property startSelected is added to the {string} set', function (world, setId) { world.props.sets.find(function (set) { return set.id === setId; }).startSelected = true; }); cucumber.defineRule('I want to render sections rather than tabs', function (world) { world.props.multipleSetType = 'section'; }); cucumber.defineRule('the {string} activities set is rendered as a section', function (world, setName) { var propsToCheckFor = getSetForActivity(setName, world.ideInteractionCb); var sectionSelector = (0, _IDHelper.idAttributeSelector)("IdeHome-Section-".concat(propsToCheckFor.id)); // confirm a section for this set is present expect(world.mountedComponent.exists(sectionSelector)).toBe(true); }); cucumber.defineRule('the expected IDECard components are rendered', function (world) { var _getSetForActivity = getSetForActivity(IDE_CARD), tasks = _getSetForActivity.tasks; // mapping of the card IDs from the tasks (in IDE_CARD) to the expected IdeCard type property given at render var expectedTypesById = { ide_card: 'text', custom_card: 'custom', link_card: 'link', external_link_card: 'externalLink', no_type: 'text' }; tasks.forEach(function (_ref) { var taskId = _ref.taskId; var selectorForCard = "IdeCard[cardId=\"".concat(taskId, "\"]"); expect(world.mountedComponent.exists(selectorForCard)).toBe(true); var ideCardForTask = world.mountedComponent.find(selectorForCard); expect(ideCardForTask.props().cardType).toBe(expectedTypesById[taskId]); }); });