UNPKG

bootstrap-vue

Version:

With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extens

139 lines (118 loc) 3.92 kB
import { mount } from '@vue/test-utils' import { BRow } from './row' describe('layout > row', () => { it('has expected default structure', async () => { const wrapper = mount(BRow) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes().length).toBe(1) expect(wrapper.text()).toEqual('') }) it('renders custom root element when prop tag is set', async () => { const wrapper = mount(BRow, { propsData: { tag: 'p' } }) expect(wrapper.element.tagName).toBe('P') expect(wrapper.classes()).toContain('row') expect(wrapper.classes().length).toBe(1) expect(wrapper.text()).toEqual('') }) it('renders default slot content', async () => { const wrapper = mount(BRow, { slots: { default: 'foobar' } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes().length).toBe(1) expect(wrapper.text()).toEqual('foobar') }) it('has class no-gutters when prop no-gutters is set', async () => { const wrapper = mount(BRow, { propsData: { noGutters: true } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes()).toContain('no-gutters') expect(wrapper.classes().length).toBe(2) }) it('has vertical align class when prop align-v is set', async () => { const wrapper = mount(BRow, { propsData: { alignV: 'baseline' } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes()).toContain('align-items-baseline') expect(wrapper.classes().length).toBe(2) }) it('has horizontal align class when prop align-h is set', async () => { const wrapper = mount(BRow, { propsData: { alignH: 'center' } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes()).toContain('justify-content-center') expect(wrapper.classes().length).toBe(2) }) it('has content align class when prop align-content is set', async () => { const wrapper = mount(BRow, { propsData: { alignContent: 'stretch' } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes()).toContain('align-content-stretch') expect(wrapper.classes().length).toBe(2) }) it('has class row-cols-6 when prop cols is set to 6', async () => { const wrapper = mount(BRow, { propsData: { cols: 6 } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes()).toContain('row-cols-6') expect(wrapper.classes().length).toBe(2) }) it('has class row-cols-md-3 when prop cols-md is set to 3', async () => { const wrapper = mount(BRow, { propsData: { colsMd: '3' } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes()).toContain('row-cols-md-3') expect(wrapper.classes().length).toBe(2) }) it('all cols-* props work', async () => { const wrapper = mount(BRow, { propsData: { cols: 1, colsSm: 2, colsMd: 3, colsLg: 4, colsXl: 5 } }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.classes()).toContain('row') expect(wrapper.classes()).toContain('row-cols-1') expect(wrapper.classes()).toContain('row-cols-sm-2') expect(wrapper.classes()).toContain('row-cols-md-3') expect(wrapper.classes()).toContain('row-cols-lg-4') expect(wrapper.classes()).toContain('row-cols-xl-5') expect(wrapper.classes().length).toBe(6) }) })