bootstrap-vue-3
Version:
Early (but lovely) implementation of Vue 3, Bootstrap 5 and Typescript
121 lines (106 loc) • 4.18 kB
text/typescript
import {enableAutoUnmount, mount} from '@vue/test-utils'
import BProgress from './BProgress.vue'
import BProgressBar from './BProgressBar.vue'
import {afterEach, describe, expect, it} from 'vitest'
describe('progress', () => {
enableAutoUnmount(afterEach)
it('tag is div', () => {
const wrapper = mount(BProgress)
expect(wrapper.element.tagName).toBe('DIV')
})
it('has static class progress', () => {
const wrapper = mount(BProgress)
expect(wrapper.classes()).toContain('progress')
})
// TODO this does not work for some reason
it.skip('has style to be prop height', async () => {
const wrapper = mount(BProgress, {
props: {height: '100'},
})
expect(wrapper.attributes('style')).toContain('height: 100')
})
it('has BProgressBar in slot by default', () => {
const wrapper = mount(BProgress)
const $progressbar = wrapper.findComponent(BProgressBar)
expect($progressbar.exists()).toBe(true)
})
it('does not have BProgressBar when default slot', () => {
const wrapper = mount(BProgress, {
slots: {default: 'foobar'},
})
const $progressbar = wrapper.findComponent(BProgressBar)
expect($progressbar.exists()).toBe(false)
})
it('BProgressBar has prop animated to be prop animated', async () => {
const wrapper = mount(BProgress, {
props: {animated: true},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('animated')).toBe(true)
await wrapper.setProps({animated: false})
expect($progressbar.props('animated')).toBe(false)
})
it('BProgressBar has prop max to be prop max', async () => {
const wrapper = mount(BProgress, {
props: {max: '50'},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('max')).toBe('50')
await wrapper.setProps({max: '20'})
expect($progressbar.props('max')).toBe('20')
})
it('BProgressBar has prop precision to be prop precision', async () => {
const wrapper = mount(BProgress, {
props: {precision: '50'},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('precision')).toBe('50')
await wrapper.setProps({precision: '20'})
expect($progressbar.props('precision')).toBe('20')
})
it('BProgressBar has prop showProgress to be prop showProgress', async () => {
const wrapper = mount(BProgress, {
props: {showProgress: true},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('showProgress')).toBe(true)
await wrapper.setProps({showProgress: false})
expect($progressbar.props('showProgress')).toBe(false)
})
it('BProgressBar has prop showValue to be prop showValue', async () => {
const wrapper = mount(BProgress, {
props: {showValue: true},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('showValue')).toBe(true)
await wrapper.setProps({showValue: false})
expect($progressbar.props('showValue')).toBe(false)
})
it('BProgressBar has prop striped to be prop striped', async () => {
const wrapper = mount(BProgress, {
props: {striped: true},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('striped')).toBe(true)
await wrapper.setProps({striped: false})
expect($progressbar.props('striped')).toBe(false)
})
it('BProgressBar has prop value to be prop value', async () => {
const wrapper = mount(BProgress, {
props: {value: '50'},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('value')).toBe('50')
await wrapper.setProps({value: '20'})
expect($progressbar.props('value')).toBe('20')
})
it('BProgressBar has prop variant to be prop variant', async () => {
const wrapper = mount(BProgress, {
props: {variant: 'danger'},
})
const $progressbar = wrapper.getComponent(BProgressBar)
expect($progressbar.props('variant')).toBe('danger')
await wrapper.setProps({variant: 'secondary'})
expect($progressbar.props('variant')).toBe('secondary')
})
})