UNPKG

@salesforce/design-system-react

Version:

Salesforce Lightning Design System for React

166 lines (151 loc) 6.88 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _enzyme = require("enzyme"); var _chai = _interopRequireWildcard(require("chai")); var _chaiEnzyme = _interopRequireDefault(require("chai-enzyme")); var _iconSettings = _interopRequireDefault(require("../../icon-settings")); var _pageHeader = _interopRequireDefault(require("../../page-header")); var _buttonStateful = _interopRequireDefault(require("../../button-stateful")); var _buttonGroup = _interopRequireDefault(require("../../button-group")); var _button = _interopRequireDefault(require("../../button")); var _menuDropdown = _interopRequireDefault(require("../../menu-dropdown")); 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; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _chai.default.use((0, _chaiEnzyme.default)()); var recordHomeActions = function recordHomeActions() { return _react.default.createElement("div", null, _react.default.createElement(_buttonStateful.default, { key: "PageHeaderFollowButton", disabled: false, iconSize: "medium", responsive: false, stateOne: { iconCategory: 'utility', iconName: 'add', label: 'Follow' }, stateTwo: { iconCategory: 'utility', iconName: 'check', label: 'Following' }, stateThree: { iconCategory: 'utility', iconName: 'close', label: 'Unfollow' } }), _react.default.createElement(_buttonGroup.default, { key: "" }, _react.default.createElement(_button.default, { label: "Edit" }), _react.default.createElement(_button.default, { label: "Delete" }), _react.default.createElement(_button.default, { label: "Clone" }), _react.default.createElement(_menuDropdown.default, { assistiveText: { icon: 'More Options' }, buttonVariant: "icon", iconCategory: "utility", iconName: "down", iconVariant: "border-filled", onSelect: function onSelect() { console.log('selected'); }, openOn: "click", align: "right", options: [{ label: 'Disable', value: 'A0' }, { label: 'Promote', value: 'C0' }] }))); }; var recordHomeDetails = [{ label: 'Description', content: 'Description that demonstrates truncation with content. Description that demonstrates truncation with content.', flavor: '1-of-4', truncate: true }, { label: 'Last Modified', content: 'August 31, 2016 2:01PM PST' }, { label: 'Status', content: 'Status of thing you wanna know' }]; describe('PageHeader: ', function () { var defaultPropsRecordHome = { iconAssistiveText: 'User', iconCategory: 'standard', iconName: 'user', label: 'Record Type', title: 'Record Title', variant: 'record-home', onRenderActions: recordHomeActions, details: recordHomeDetails }; describe('Renders basic props', function () { it('renders correct Icon prop', function () { var wrapper = (0, _enzyme.mount)(_react.default.createElement(_iconSettings.default, { iconPath: "/assets/icons" }, _react.default.createElement(_pageHeader.default, defaultPropsRecordHome))); var svg = wrapper.find('.slds-media__figure .slds-icon-standard-user'); (0, _chai.expect)(svg).to.exist; }); it('renders correct Label prop', function () { var wrapper = (0, _enzyme.mount)(_react.default.createElement(_iconSettings.default, { iconPath: "/assets/icons" }, _react.default.createElement(_pageHeader.default, defaultPropsRecordHome))); (0, _chai.expect)(wrapper.find('SLDSPageHeader')).to.have.prop('label', 'Record Type'); }); it('renders correct Title prop', function () { var wrapper = (0, _enzyme.mount)(_react.default.createElement(_iconSettings.default, { iconPath: "/assets/icons" }, _react.default.createElement(_pageHeader.default, defaultPropsRecordHome))); (0, _chai.expect)(wrapper.find('SLDSPageHeader')).to.have.prop('title', 'Record Title'); }); it('renders ContentRight prop', function () { var wrapper = (0, _enzyme.mount)(_react.default.createElement(_iconSettings.default, { iconPath: "/assets/icons" }, _react.default.createElement(_pageHeader.default, defaultPropsRecordHome))); var statefulBtn = wrapper.find('.slds-not-selected'); var buttonGroup = wrapper.find('.slds-button-group'); (0, _chai.expect)(statefulBtn).to.have.length(1); (0, _chai.expect)(buttonGroup).to.have.length(1); }); it('renders Fields prop', function () { var wrapper = (0, _enzyme.mount)(_react.default.createElement(_iconSettings.default, { iconPath: "/assets/icons" }, _react.default.createElement(_pageHeader.default, defaultPropsRecordHome))); var field1Title = wrapper.find('.slds-text-title').first(); var field1Content = wrapper.find('.slds-text-body_regular').first(); (0, _chai.expect)(field1Title.text()).to.equal('Description'); (0, _chai.expect)(field1Content.text()).to.equal('Description that demonstrates truncation with content. Description that demonstrates truncation with content.'); }); }); describe('Truncation works in all the ways Donielle can think of', function () { it('field content truncates if this.props.truncate is true', function () { var wrapper = (0, _enzyme.mount)(_react.default.createElement(_iconSettings.default, { iconPath: "/assets/icons" }, _react.default.createElement(_pageHeader.default, defaultPropsRecordHome))); var field1Content = wrapper.find('.slds-text-body_regular').first(); (0, _chai.expect)(field1Content.hasClass('slds-truncate')).to.equal(true); }); /* it('field content does NOT show PopoverTooltip if text is NOT truncated', () => { const wrapper = mount(<IconSettings iconPath="/assets/icons"><PageHeader {...defaultPropsRecordHome} />) wrapper.update(); const nonTruncatedText = wrapper.find('.slds-text-body_regular').at(1); expect(nonTruncatedText.node.tabIndex).to.equal(-1); }); it('field content shows PopoverTooltip if text truncates', () => { const wrapper = mount(<IconSettings iconPath="/assets/icons"><PageHeader {...defaultPropsRecordHome} />) wrapper.update(); const truncatedText = wrapper.find('.slds-text-body_regular').first(); expect(truncatedText.node.tabIndex).to.equal(0); }); */ }); });