import React from 'react';
import { shallow } from 'enzyme';
import { Col } from '../';
describe('Col', () => {
it('should render default .col markup', () => {
const wrapper = shallow(
);
expect(wrapper.html()).toBe('');
});
it('should render children', () => {
const wrapper = shallow(Children);
expect(wrapper.text()).toBe('Children');
});
it('should pass additional classNames', () => {
const wrapper = shallow();
expect(wrapper.hasClass('extra')).toBe(true);
expect(wrapper.hasClass('col')).toBe(true);
});
it('should allow custom columns to be defined', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col-4')).toBe(true);
expect(wrapper.hasClass('col-jumbo-6')).toBe(true);
expect(wrapper.hasClass('col')).toBe(false);
});
it('should allow custom columns to be defined with objects', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col-wtf-1')).toBe(true);
expect(wrapper.hasClass('order-wtf-2')).toBe(true);
expect(wrapper.hasClass('offset-wtf-4')).toBe(true);
expect(wrapper.hasClass('col')).toBe(false);
});
it('should pass col size specific classes as Strings', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col-sm-6')).toBe(true);
expect(wrapper.hasClass('col')).toBe(false);
});
it('should pass col size specific classes as Numbers', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col-sm-6')).toBe(true);
expect(wrapper.hasClass('col')).toBe(false);
});
it('should pass col size as flex with values "auto" or without value', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col')).toBe(false);
expect(wrapper.hasClass('col-auto')).toBe(true);
expect(wrapper.hasClass('col-sm')).toBe(true);
});
it('should pass col size specific classes via Objects', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col-sm-6')).toBe(true);
expect(wrapper.hasClass('col')).toBe(false);
expect(wrapper.hasClass('order-sm-2')).toBe(true);
expect(wrapper.hasClass('offset-sm-2')).toBe(true);
});
it('should pass col size specific classes via Objects including 0', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col-sm-6')).toBe(true);
expect(wrapper.hasClass('col')).toBe(false);
expect(wrapper.hasClass('order-sm-0')).toBe(true);
expect(wrapper.hasClass('offset-sm-0')).toBe(true);
});
it('should pass col size when passing via object with size "auto"', () => {
const wrapper = shallow();
expect(wrapper.hasClass('col')).toBe(false);
expect(wrapper.hasClass('col-sm-auto')).toBe(true);
});
it('should render custom tag', () => {
const wrapper = shallow(Yo!);
expect(wrapper.text()).toBe('Yo!');
expect(wrapper.type()).toBe('main');
expect(wrapper.hasClass('col')).toBe(true);
});
});