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

94 lines (75 loc) 2.45 kB
import { mount } from '@vue/test-utils' import { BNavForm } from './nav-form' describe('nav > nav-form', () => { it('has expected default structure', async () => { const wrapper = mount(BNavForm) expect(wrapper.element.tagName).toBe('LI') expect(wrapper.classes()).toContain('form-inline') expect(wrapper.classes().length).toBe(1) const $form = wrapper.find('form') expect($form.exists()).toBe(true) expect($form.classes()).toContain('form-inline') expect($form.classes().length).toBe(1) expect(wrapper.text()).toEqual('') wrapper.destroy() }) it('renders default slot content', async () => { const wrapper = mount(BNavForm, { slots: { default: 'foobar' } }) expect(wrapper.element.tagName).toBe('LI') expect(wrapper.classes()).toContain('form-inline') expect(wrapper.classes().length).toBe(1) const $form = wrapper.find('form') expect($form.exists()).toBe(true) expect($form.classes()).toContain('form-inline') expect($form.text()).toEqual('foobar') wrapper.destroy() }) it('applies ID to form when prop ID is set', async () => { const wrapper = mount(BNavForm, { propsData: { id: 'baz' }, slots: { default: 'foobar' } }) expect(wrapper.element.tagName).toBe('LI') expect(wrapper.classes()).toContain('form-inline') expect(wrapper.classes().length).toBe(1) const $form = wrapper.find('form') expect($form.exists()).toBe(true) expect($form.classes()).toContain('form-inline') expect($form.text()).toEqual('foobar') expect($form.attributes('id')).toEqual('baz') wrapper.destroy() }) it('listeners are bound to form element', async () => { const onSubmit = jest.fn() const wrapper = mount(BNavForm, { propsData: { id: 'baz' }, listeners: { submit: onSubmit }, slots: { default: 'foobar' } }) expect(wrapper.element.tagName).toBe('LI') expect(wrapper.classes()).toContain('form-inline') expect(wrapper.classes().length).toBe(1) const $form = wrapper.find('form') expect($form.exists()).toBe(true) expect($form.classes()).toContain('form-inline') expect($form.text()).toEqual('foobar') expect(onSubmit).not.toHaveBeenCalled() await $form.trigger('submit') expect(onSubmit).toHaveBeenCalled() wrapper.destroy() }) })