StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
276 lines
8.1 KiB
276 lines
8.1 KiB
import { mount } from '@vue/test-utils'
|
|
import { BCarouselSlide } from './carousel-slide'
|
|
|
|
describe('carousel-slide', () => {
|
|
it('has root element "div"', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
expect(wrapper.is('div')).toBe(true)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has class carousel-item', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
expect(wrapper.classes()).toContain('carousel-item')
|
|
expect(wrapper.classes().length).toBe(1)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has role=listitem', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
expect(wrapper.attributes('role')).toBeDefined()
|
|
expect(wrapper.attributes('role')).toBe('listitem')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('does not have child div.carousel-caption by default', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
expect(wrapper.find('.carousel-caption').exists()).toBe(false)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('does not have image by default', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
expect(wrapper.find('img').exists()).toBe(false)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('does not have caption tag h3 by default', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
expect(wrapper.find('h3').exists()).toBe(false)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('does not have text tag p by default', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
expect(wrapper.find('p').exists()).toBe(false)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('renders default slot inside carousel-caption', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
slots: {
|
|
default: 'foobar'
|
|
}
|
|
})
|
|
expect(wrapper.find('.carousel-caption').exists()).toBe(true)
|
|
expect(wrapper.find('.carousel-caption').text()).toContain('foobar')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has caption tag h3 when prop caption is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
caption: 'foobar'
|
|
}
|
|
})
|
|
const content = wrapper.find('.carousel-caption')
|
|
expect(content.find('h3').exists()).toBe(true)
|
|
expect(content.find('h3').text()).toBe('foobar')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has text tag p when prop text is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
text: 'foobar'
|
|
}
|
|
})
|
|
const content = wrapper.find('.carousel-caption')
|
|
expect(content.find('p').exists()).toBe(true)
|
|
expect(content.find('p').text()).toBe('foobar')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has custom content tag when prop contentTag is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
contentTag: 'span'
|
|
},
|
|
slots: {
|
|
default: 'foobar'
|
|
}
|
|
})
|
|
expect(wrapper.find('.carousel-caption').exists()).toBe(true)
|
|
expect(wrapper.find('.carousel-caption').is('span')).toBe(true)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has display classes on .carousel-caption when prop contentVisibleUp is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
contentVisibleUp: 'lg'
|
|
},
|
|
slots: {
|
|
default: 'foobar'
|
|
}
|
|
})
|
|
expect(wrapper.find('.carousel-caption').exists()).toBe(true)
|
|
expect(wrapper.find('.carousel-caption').classes()).toContain('d-none')
|
|
expect(wrapper.find('.carousel-caption').classes()).toContain('d-lg-block')
|
|
expect(wrapper.find('.carousel-caption').classes().length).toBe(3)
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('does not have style background when prop background not set', async () => {
|
|
const wrapper = mount(BCarouselSlide)
|
|
if (wrapper.attributes('style')) {
|
|
// Vue always includes a style attr when passed an empty style object
|
|
expect(wrapper.attributes('style')).not.toContain('background:')
|
|
} else {
|
|
// But just in case that changes in the future
|
|
expect(true).toBe(true)
|
|
}
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has style background when prop background is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
background: 'rgb(1, 2, 3)'
|
|
}
|
|
})
|
|
expect(wrapper.attributes('style')).toBeDefined()
|
|
expect(wrapper.attributes('style')).toContain('background:')
|
|
expect(wrapper.attributes('style')).toContain('rgb(')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has style background inherited from carousel parent', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
provide: {
|
|
bvCarousel: {
|
|
background: 'rgb(1, 2, 3)'
|
|
}
|
|
}
|
|
})
|
|
expect(wrapper.attributes('style')).toBeDefined()
|
|
expect(wrapper.attributes('style')).toContain('background:')
|
|
expect(wrapper.attributes('style')).toContain('rgb(')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has custom caption tag when prop captionTag is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
captionTag: 'h1',
|
|
caption: 'foobar'
|
|
}
|
|
})
|
|
const content = wrapper.find('.carousel-caption')
|
|
expect(content.find('h1').exists()).toBe(true)
|
|
expect(content.find('h1').text()).toBe('foobar')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has custom text tag when prop textTag is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
textTag: 'span',
|
|
text: 'foobar'
|
|
}
|
|
})
|
|
const content = wrapper.find('.carousel-caption')
|
|
expect(content.find('span').exists()).toBe(true)
|
|
expect(content.find('span').text()).toBe('foobar')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has image when prop img-src is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
imgSrc: 'https://picsum.photos/1024/480/?image=52'
|
|
}
|
|
})
|
|
expect(wrapper.find('img').exists()).toBe(true)
|
|
expect(wrapper.find('img').attributes('src')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('src')).toBe('https://picsum.photos/1024/480/?image=52')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has image when prop img-blank is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
imgBlank: true
|
|
}
|
|
})
|
|
expect(wrapper.find('img').exists()).toBe(true)
|
|
expect(wrapper.find('img').attributes('src')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('src')).toContain('data:')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has image with alt attribute when prop img-alt is set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
imgSrc: 'https://picsum.photos/1024/480/?image=52',
|
|
imgAlt: 'foobar'
|
|
}
|
|
})
|
|
expect(wrapper.find('img').exists()).toBe(true)
|
|
expect(wrapper.find('img').attributes('src')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('alt')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('alt')).toBe('foobar')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has image with width and height attrs when props img-width and img-height are set', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
propsData: {
|
|
imgSrc: 'https://picsum.photos/1024/480/?image=52',
|
|
imgWidth: '1024',
|
|
imgHeight: '480'
|
|
}
|
|
})
|
|
expect(wrapper.find('img').exists()).toBe(true)
|
|
expect(wrapper.find('img').attributes('src')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('width')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('width')).toBe('1024')
|
|
expect(wrapper.find('img').attributes('height')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('height')).toBe('480')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
|
|
it('has image with width and height attrs inherited from carousel parent', async () => {
|
|
const wrapper = mount(BCarouselSlide, {
|
|
provide: {
|
|
// Mock carousel injection
|
|
bvCarousel: {
|
|
imgWidth: '1024',
|
|
imgHeight: '480'
|
|
}
|
|
},
|
|
propsData: {
|
|
imgSrc: 'https://picsum.photos/1024/480/?image=52'
|
|
}
|
|
})
|
|
expect(wrapper.find('img').exists()).toBe(true)
|
|
expect(wrapper.find('img').attributes('src')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('width')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('width')).toBe('1024')
|
|
expect(wrapper.find('img').attributes('height')).toBeDefined()
|
|
expect(wrapper.find('img').attributes('height')).toBe('480')
|
|
|
|
wrapper.destroy()
|
|
})
|
|
})
|
|
|