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
59 lines (45 loc) • 1.59 kB
JavaScript
import { mount } from '@vue/test-utils'
import { createContainer, waitNT } from '../../tests/utils'
import { BTransporterSingle } from './transporter'
describe('utils/transporter component', () => {
it('renders in-pace when disabled=true', async () => {
const App = {
render(h) {
return h(BTransporterSingle, { props: { disabled: true } }, [h('div', 'content')])
}
}
const wrapper = mount(App, {
attachTo: createContainer()
})
expect(wrapper.vm).toBeDefined()
expect(wrapper.element.tagName).toBe('DIV')
expect(wrapper.text()).toEqual('content')
wrapper.destroy()
})
it('does not render in-pace when disabled=false', async () => {
const App = {
render(h) {
return h(BTransporterSingle, { props: { disabled: false } }, [
h('div', { attrs: { id: 'foobar' } }, 'content')
])
}
}
const wrapper = mount(App, {
attachTo: createContainer()
})
expect(wrapper.vm).toBeDefined()
await waitNT(wrapper.vm)
expect(wrapper.element.nodeType).toBe(Node.COMMENT_NODE)
const target = document.getElementById('foobar')
expect(target).toBeDefined()
expect(target).not.toBe(null)
expect(target.__vue__).toBeDefined() // Target
expect(target.__vue__.$options.name).toBe('BTransporterTargetSingle')
expect(target.tagName).toEqual('DIV')
expect(target.parentElement).toBeDefined()
expect(target.parentElement).toBe(document.body)
wrapper.destroy()
await waitNT(wrapper.vm)
expect(target.parentElement).toEqual(null)
})
})