@bootstrap-styled/v4
Version:
twbs/bootstrap V4 UI Components made with bootstrap-styled. Work with css-in-js, react, styled-components, and Bootstrap Styled utilities.
139 lines (130 loc) • 5.14 kB
JavaScript
"use strict";
var _enzyme = require("enzyme");
var _react = _interopRequireDefault(require("react"));
var _BootstrapProvider = _interopRequireDefault(require("@bootstrap-styled/provider/lib/BootstrapProvider"));
var _index = _interopRequireDefault(require("../index"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Testing our Label component
*/
var children = _react.default.createElement("h1", null, "Test");
var renderComponent = function renderComponent() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (0, _enzyme.mount)(_react.default.createElement(_index.default, props, props.children));
};
var renderComponentUsingTheme = function renderComponentUsingTheme() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (0, _enzyme.mount)(_react.default.createElement(_BootstrapProvider.default, null, _react.default.createElement(_index.default, props, props.children)));
};
describe('<Label />', function () {
it('should render an <Label> tag without a theme', function () {
var renderedComponent = renderComponent({
children: children
});
expect(renderedComponent.find('LabelUnstyled').length).toBe(1);
});
it('should have children without a theme', function () {
var renderedComponent = renderComponent({
children: children
});
expect(renderedComponent.contains(children)).toEqual(true);
});
it('should render a <label> tag with a theme', function () {
var renderedComponent = renderComponentUsingTheme({
children: children
});
expect(renderedComponent.find('label').length).toBe(1);
});
it('should render with col-form-label-lg class when size is provided', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
size: 'lg'
});
expect(renderedComponent.find('label').hasClass('col-form-label-lg')).toBe(true);
});
it('should pass col size specific classes as Numbers', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
sm: '6'
});
expect(renderedComponent.find('label').hasClass('col-sm-6')).toBe(true);
});
it('should pass col size specific classes via Objects', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
sm: {
size: 6,
push: 2,
pull: 2,
offset: 2
}
});
expect(renderedComponent.find('label').hasClass('col-sm-6')).toBe(true);
expect(renderedComponent.find('label').hasClass('push-sm-2')).toBe(true);
expect(renderedComponent.find('label').hasClass('pull-sm-2')).toBe(true);
expect(renderedComponent.find('label').hasClass('offset-sm-2')).toBe(true);
});
it('should pass multiple col size specific classes via Objects', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
sm: {
size: 6,
push: 2,
pull: 2,
offset: 2
},
md: {
size: 7,
push: 1,
pull: 1,
offset: 1
}
});
expect(renderedComponent.find('label').hasClass('col-sm-6')).toBe(true);
expect(renderedComponent.find('label').hasClass('push-sm-2')).toBe(true);
expect(renderedComponent.find('label').hasClass('pull-sm-2')).toBe(true);
expect(renderedComponent.find('label').hasClass('offset-sm-2')).toBe(true);
expect(renderedComponent.find('label').hasClass('col-md-7')).toBe(true);
expect(renderedComponent.find('label').hasClass('push-md-1')).toBe(true);
expect(renderedComponent.find('label').hasClass('pull-md-1')).toBe(true);
expect(renderedComponent.find('label').hasClass('offset-md-1')).toBe(true);
});
it('should have a class sr-only with a theme', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
hidden: true
});
expect(renderedComponent.find('Label').hasClass('sr-only'));
});
it('should have a class form-check-inline with a theme', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
check: true,
inline: true
});
expect(renderedComponent.find('Label').hasClass('form-check-inline'));
});
it('should have a class form-check-label with a theme', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
check: true,
inline: false
});
expect(renderedComponent.find('Label').hasClass('form-check-label'));
});
it('should have an attribute disabled with a theme', function () {
var renderedComponent = renderComponentUsingTheme({
children: children,
check: true,
inline: true,
disabled: true
});
expect(renderedComponent.find('Label').props().disabled).toBe(true);
});
it('should have children with a theme', function () {
var renderedComponent = renderComponentUsingTheme({
children: children
});
expect(renderedComponent.contains(children)).toEqual(true);
});
});