@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
166 lines (151 loc) • 6.88 kB
JavaScript
"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);
});
*/
});
});