get all components tests running

This commit is contained in:
Moriz Wahl 2023-02-15 11:12:19 +01:00
parent 4ce5bdd6fa
commit 6eb5ad25af
15 changed files with 54 additions and 44 deletions

View File

@ -14,7 +14,7 @@ describe('Badges.vue', () => {
} }
it('has class "hc-badges"', () => { it('has class "hc-badges"', () => {
expect(Wrapper().contains('.hc-badges')).toBe(true) expect(Wrapper().find('.hc-badges').exists()).toBe(true)
}) })
describe('given a badge', () => { describe('given a badge', () => {
@ -23,7 +23,7 @@ describe('Badges.vue', () => {
}) })
it('proxies badge icon, which is just a URL without metadata', () => { it('proxies badge icon, which is just a URL without metadata', () => {
expect(Wrapper().contains('img[src="/api/path/to/some/icon"]')).toBe(true) expect(Wrapper().find('img[src="/api/path/to/some/icon"]').exists()).toBe(true)
}) })
}) })
}) })

View File

@ -1,4 +1,4 @@
import { shallowMount } from '@vue/test-utils' import { mount } from '@vue/test-utils'
import Category from './index' import Category from './index'
@ -9,7 +9,7 @@ describe('Category', () => {
let name let name
const Wrapper = () => { const Wrapper = () => {
return shallowMount(Category, { return mount(Category, {
localVue, localVue,
propsData: { propsData: {
icon, icon,
@ -27,8 +27,9 @@ describe('Category', () => {
it('shows Name', () => { it('shows Name', () => {
expect(Wrapper().text()).toContain('Peter') expect(Wrapper().text()).toContain('Peter')
}) })
it('shows Icon Svg', () => {
expect(Wrapper().contains('svg')) it('shows base icon', () => {
expect(Wrapper().find('.base-icon').exists()).toBe(true)
}) })
}) })
}) })

View File

@ -1,9 +1,13 @@
import { config, mount } from '@vue/test-utils' import { mount } from '@vue/test-utils'
import GroupContentMenu from './GroupContentMenu.vue' import GroupContentMenu from './GroupContentMenu.vue'
const localVue = global.localVue const localVue = global.localVue
config.stubs['router-link'] = '<span><slot /></span>' const stubs = {
'router-link': {
template: '<span><slot /></span>',
},
}
const propsData = { const propsData = {
usage: 'groupTeaser', usage: 'groupTeaser',
@ -24,7 +28,7 @@ describe('GroupContentMenu', () => {
describe('mount', () => { describe('mount', () => {
const Wrapper = () => { const Wrapper = () => {
return mount(GroupContentMenu, { propsData, mocks, localVue }) return mount(GroupContentMenu, { propsData, mocks, localVue, stubs })
} }
beforeEach(() => { beforeEach(() => {

View File

@ -166,7 +166,7 @@ describe('ContributionForm.vue', () => {
.mockImplementation(function () { .mockImplementation(function () {
this.onload({ target: { result: 'someUrlToImage' } }) this.onload({ target: { result: 'someUrlToImage' } })
}) })
wrapper.find(ImageUploader).vm.$emit('addHeroImage', imageUpload) wrapper.findComponent(ImageUploader).vm.$emit('addHeroImage', imageUpload)
await wrapper.find('form').trigger('submit') await wrapper.find('form').trigger('submit')
expect(mocks.$apollo.mutate).toHaveBeenCalledWith(expect.objectContaining(expectedParams)) expect(mocks.$apollo.mutate).toHaveBeenCalledWith(expect.objectContaining(expectedParams))
expect(spy).toHaveBeenCalledWith(imageUpload) expect(spy).toHaveBeenCalledWith(imageUpload)

View File

@ -42,7 +42,7 @@ describe('Embed.vue', () => {
propsData.node = { attrs: { href: 'https://www.youtube.com/watch?v=qkdXAtO40Fo' } } propsData.node = { attrs: { href: 'https://www.youtube.com/watch?v=qkdXAtO40Fo' } }
const wrapper = Wrapper({ propsData }) const wrapper = Wrapper({ propsData })
await wrapper.html() await wrapper.html()
expect(wrapper.contains('embed-component-stub')).toBe(true) expect(wrapper.find('embed-component-stub').exists()).toBe(true)
}) })
}) })

View File

@ -2,7 +2,9 @@ import { mount } from '@vue/test-utils'
import InviteButton from './InviteButton.vue' import InviteButton from './InviteButton.vue'
const stubs = { const stubs = {
'v-popover': true, 'v-popover': {
template: '<span><slot /></span>',
},
} }
describe('InviteButton.vue', () => { describe('InviteButton.vue', () => {
@ -32,12 +34,12 @@ describe('InviteButton.vue', () => {
}) })
it('renders', () => { it('renders', () => {
expect(wrapper.contains('.invite-button')).toBe(true) expect(wrapper.find('.invite-button').exists()).toBe(true)
}) })
it('open popup', () => { it('open popup', () => {
wrapper.find('.base-button').trigger('click') wrapper.find('.base-button').trigger('click')
expect(wrapper.contains('.invite-button')).toBe(true) expect(wrapper.find('.invite-button').exists()).toBe(true)
}) })
it('invite codes not available', async () => { it('invite codes not available', async () => {

View File

@ -3,6 +3,7 @@ import LoginButton from './LoginButton.vue'
const stubs = { const stubs = {
'v-popover': true, 'v-popover': true,
'nuxt-link': true,
} }
describe('LoginButton.vue', () => { describe('LoginButton.vue', () => {
@ -32,12 +33,12 @@ describe('LoginButton.vue', () => {
}) })
it('renders', () => { it('renders', () => {
expect(wrapper.contains('.login-button')).toBe(true) expect(wrapper.find('.login-button').exists()).toBe(true)
}) })
it('open popup', () => { it('open popup', () => {
wrapper.find('.base-button').trigger('click') wrapper.find('.base-button').trigger('click')
expect(wrapper.contains('.login-button')).toBe(true) expect(wrapper.find('.login-button').exists()).toBe(true)
}) })
}) })
}) })

View File

@ -57,9 +57,9 @@ describe('Modal.vue', () => {
it('initially empty', () => { it('initially empty', () => {
wrapper = Wrapper() wrapper = Wrapper()
expect(wrapper.contains(ConfirmModal)).toBe(false) expect(wrapper.findComponent(ConfirmModal).exists()).toBe(false)
expect(wrapper.contains(DisableModal)).toBe(false) expect(wrapper.findComponent(DisableModal).exists()).toBe(false)
expect(wrapper.contains(ReportModal)).toBe(false) expect(wrapper.findComponent(ReportModal).exists()).toBe(false)
}) })
describe('store/modal holds data to disable', () => { describe('store/modal holds data to disable', () => {
@ -78,11 +78,11 @@ describe('Modal.vue', () => {
}) })
it('renders disable modal', () => { it('renders disable modal', () => {
expect(wrapper.contains(DisableModal)).toBe(true) expect(wrapper.findComponent(DisableModal).exists()).toBe(true)
}) })
it('passes data to disable modal', () => { it('passes data to disable modal', () => {
expect(wrapper.find(DisableModal).props()).toEqual({ expect(wrapper.findComponent(DisableModal).props()).toEqual({
type: 'contribution', type: 'contribution',
name: 'some title', name: 'some title',
id: 'c456', id: 'c456',
@ -91,9 +91,9 @@ describe('Modal.vue', () => {
describe('child component emits close', () => { describe('child component emits close', () => {
it('turns empty', async () => { it('turns empty', async () => {
wrapper.find(DisableModal).vm.$emit('close') wrapper.findComponent(DisableModal).vm.$emit('close')
await Vue.nextTick() await Vue.nextTick()
expect(wrapper.contains(DisableModal)).toBe(false) expect(wrapper.findComponent(DisableModal).exists()).toBe(false)
}) })
}) })
@ -109,7 +109,7 @@ describe('Modal.vue', () => {
}, },
} }
wrapper = Wrapper() wrapper = Wrapper()
expect(wrapper.find(DisableModal).props()).toEqual({ expect(wrapper.findComponent(DisableModal).props()).toEqual({
type: 'comment', type: 'comment',
name: 'Author name', name: 'Author name',
id: 'c456', id: 'c456',
@ -124,7 +124,7 @@ describe('Modal.vue', () => {
}, },
} }
wrapper = Wrapper() wrapper = Wrapper()
expect(wrapper.find(DisableModal).props()).toEqual({ expect(wrapper.findComponent(DisableModal).props()).toEqual({
type: 'comment', type: 'comment',
name: '', name: '',
id: 'c456', id: 'c456',
@ -142,7 +142,7 @@ describe('Modal.vue', () => {
}, },
} }
wrapper = Wrapper() wrapper = Wrapper()
expect(wrapper.find(DisableModal).props()).toEqual({ expect(wrapper.findComponent(DisableModal).props()).toEqual({
type: 'user', type: 'user',
name: 'Username', name: 'Username',
id: 'u456', id: 'u456',
@ -160,7 +160,7 @@ describe('Modal.vue', () => {
}, },
} }
wrapper = Wrapper() wrapper = Wrapper()
expect(wrapper.find(DisableModal).props()).toEqual({ expect(wrapper.findComponent(DisableModal).props()).toEqual({
type: 'something', type: 'something',
name: null, name: null,
id: 's456', id: 's456',

View File

@ -52,7 +52,7 @@ describe('NotificationList.vue', () => {
}) })
it('renders Notification.vue for each notification of the user', () => { it('renders Notification.vue for each notification of the user', () => {
expect(wrapper.findAll(Notification)).toHaveLength(2) expect(wrapper.findAllComponents(Notification)).toHaveLength(2)
}) })
}) })
@ -97,7 +97,7 @@ describe('NotificationList.vue', () => {
}) })
it('renders Notification.vue zero times', () => { it('renders Notification.vue zero times', () => {
expect(wrapper.findAll(Notification)).toHaveLength(0) expect(wrapper.findAllComponents(Notification)).toHaveLength(0)
}) })
}) })
}) })

View File

@ -22,7 +22,7 @@ describe('Request', () => {
}, },
} }
stubs = { stubs = {
LocaleSwitch: "<div class='stub'></div>", LocaleSwitch: true,
'sweetalert-icon': true, 'sweetalert-icon': true,
'client-only': true, 'client-only': true,
'nuxt-link': true, 'nuxt-link': true,

View File

@ -19,7 +19,7 @@ describe('CounterIcon.vue', () => {
}) })
it('renders the icon', () => { it('renders the icon', () => {
expect(wrapper.find(BaseIcon).exists()).toBe(true) expect(wrapper.findComponent(BaseIcon).exists()).toBe(true)
}) })
it('renders the count', () => { it('renders the count', () => {
@ -35,7 +35,7 @@ describe('CounterIcon.vue', () => {
}) })
it('renders the icon', () => { it('renders the icon', () => {
expect(wrapper.find(BaseIcon).exists()).toBe(true) expect(wrapper.findComponent(BaseIcon).exists()).toBe(true)
}) })
it('renders the capped count with a plus', () => { it('renders the capped count with a plus', () => {

View File

@ -20,7 +20,7 @@ describe('ProfileAvatar', () => {
}) })
it('renders an icon', () => { it('renders an icon', () => {
expect(wrapper.find(BaseIcon).exists()).toBe(true) expect(wrapper.findComponent(BaseIcon).exists()).toBe(true)
}) })
describe('given a profile', () => { describe('given a profile', () => {
@ -38,7 +38,7 @@ describe('ProfileAvatar', () => {
it('renders an icon', () => { it('renders an icon', () => {
propsData = { profile: { name: null } } propsData = { profile: { name: null } }
wrapper = Wrapper() wrapper = Wrapper()
expect(wrapper.find(BaseIcon).exists()).toBe(true) expect(wrapper.findComponent(BaseIcon).exists()).toBe(true)
}) })
}) })
@ -46,7 +46,7 @@ describe('ProfileAvatar', () => {
it('renders an icon', () => { it('renders an icon', () => {
propsData = { profile: { name: 'Anonymous' } } propsData = { profile: { name: 'Anonymous' } }
wrapper = Wrapper() wrapper = Wrapper()
expect(wrapper.find(BaseIcon).exists()).toBe(true) expect(wrapper.findComponent(BaseIcon).exists()).toBe(true)
}) })
}) })

View File

@ -56,11 +56,11 @@ describe('ReportList', () => {
}) })
it('renders DropdownFilter', () => { it('renders DropdownFilter', () => {
expect(wrapper.find(DropdownFilter).exists()).toBe(true) expect(wrapper.findComponent(DropdownFilter).exists()).toBe(true)
}) })
it('renders ReportsTable', () => { it('renders ReportsTable', () => {
expect(wrapper.find(ReportsTable).exists()).toBe(true) expect(wrapper.findComponent(ReportsTable).exists()).toBe(true)
}) })
}) })
@ -68,7 +68,7 @@ describe('ReportList', () => {
beforeEach(async () => { beforeEach(async () => {
wrapper = Wrapper() wrapper = Wrapper()
wrapper.setData({ reports }) wrapper.setData({ reports })
wrapper.find(ReportsTable).vm.$emit('confirm', reports[0]) wrapper.findComponent(ReportsTable).vm.$emit('confirm', reports[0])
}) })
it('calls modal/SET_OPEN', () => { it('calls modal/SET_OPEN', () => {

View File

@ -84,7 +84,9 @@ describe('ReportRow', () => {
wrapper = Wrapper() wrapper = Wrapper()
}) })
it('renders the disabled icon', () => { it('renders the disabled icon', () => {
expect(wrapper.find('.status-line').find(BaseIcon).props().name).toEqual('eye-slash') expect(wrapper.find('.status-line').findComponent(BaseIcon).props().name).toEqual(
'eye-slash',
)
}) })
it('renders its current status', () => { it('renders its current status', () => {
@ -98,7 +100,7 @@ describe('ReportRow', () => {
wrapper = Wrapper() wrapper = Wrapper()
}) })
it('renders the enabled icon', () => { it('renders the enabled icon', () => {
expect(wrapper.find('.status-line').find(BaseIcon).props().name).toEqual('eye') expect(wrapper.find('.status-line').findComponent(BaseIcon).props().name).toEqual('eye')
}) })
it('renders its current status', () => { it('renders its current status', () => {
@ -119,7 +121,7 @@ describe('ReportRow', () => {
}) })
it('renders a comments icon', () => { it('renders a comments icon', () => {
const commentsIcon = wrapper.find(BaseIcon).props().name const commentsIcon = wrapper.findComponent(BaseIcon).props().name
expect(commentsIcon).toEqual('comments') expect(commentsIcon).toEqual('comments')
}) })
@ -141,7 +143,7 @@ describe('ReportRow', () => {
}) })
it('renders a bookmark icon', () => { it('renders a bookmark icon', () => {
const postIcon = wrapper.find(BaseIcon).props().name const postIcon = wrapper.findComponent(BaseIcon).props().name
expect(postIcon).toEqual('bookmark') expect(postIcon).toEqual('bookmark')
}) })
@ -163,7 +165,7 @@ describe('ReportRow', () => {
}) })
it('renders a user icon', () => { it('renders a user icon', () => {
const userIcon = wrapper.find(BaseIcon).props().name const userIcon = wrapper.findComponent(BaseIcon).props().name
expect(userIcon).toEqual('user') expect(userIcon).toEqual('user')
}) })

View File

@ -36,7 +36,7 @@ describe('SearchField.vue', () => {
describe('Emitted events', () => { describe('Emitted events', () => {
let searchableInputComponent let searchableInputComponent
beforeEach(() => { beforeEach(() => {
searchableInputComponent = wrapper.find(SearchableInput) searchableInputComponent = wrapper.findComponent(SearchableInput)
}) })
describe('query event', () => { describe('query event', () => {