fix tests

This commit is contained in:
Pig Fang 2020-01-31 15:58:48 +08:00
parent 1d87171808
commit 2bd1a8c073
8 changed files with 42 additions and 34 deletions

View File

@ -2,6 +2,7 @@ import 'bootstrap'
import Vue from 'vue'
import { mount } from '@vue/test-utils'
import { flushPromises } from '../utils'
import { trans } from '@/scripts/i18n'
import { toast } from '@/scripts/notify'
import ApplyToPlayerDialog from '@/components/ApplyToPlayerDialog.vue'
@ -16,7 +17,7 @@ test('submit applying texture', async () => {
const button = wrapper.find('.btn-outline-info')
button.trigger('click')
expect(toast.info).toBeCalledWith('user.emptySelectedTexture')
expect(toast.info).toBeCalledWith(trans('user.emptySelectedTexture'))
wrapper.setProps({ skin: 1 })
button.trigger('click')

View File

@ -1,12 +1,13 @@
import $ from 'jquery'
import { act } from 'react-dom/test-utils'
import { trans } from '@/scripts/i18n'
import { showModal } from '@/scripts/modal'
test('show modal', async () => {
process.nextTick(() => {
expect(
document.querySelector('.modal-title')!.textContent,
).toBe('general.tip')
).toBe(trans('general.tip'))
document.querySelector<HTMLButtonElement>('.btn-primary')!.click()
})
const { value } = await showModal()

View File

@ -1,6 +1,7 @@
import Vue from 'vue'
import * as net from '@/scripts/net'
import { on } from '@/scripts/event'
import { trans } from '@/scripts/i18n'
import { showModal } from '@/scripts/notify'
jest.mock('@/scripts/notify')
@ -150,7 +151,7 @@ test('low level fetch', async () => {
await net.walkFetch(request as Request)
expect(showModal).toBeCalledWith({
mode: 'alert',
title: 'general.fatalError',
title: trans('general.fatalError'),
dangerousHTML: 'network',
type: 'danger',
okButtonType: 'outline-light',
@ -160,7 +161,7 @@ test('low level fetch', async () => {
await net.walkFetch(request as Request)
expect(showModal).toBeCalledWith({
mode: 'alert',
title: 'general.fatalError',
title: trans('general.fatalError'),
dangerousHTML: '404',
type: 'danger',
okButtonType: 'outline-light',
@ -171,7 +172,7 @@ test('low level fetch', async () => {
await net.walkFetch(request as Request)
expect(showModal).toBeCalledWith({
mode: 'alert',
title: 'general.fatalError',
title: trans('general.fatalError'),
dangerousHTML: 'error',
type: 'danger',
okButtonType: 'outline-light',
@ -238,7 +239,7 @@ test('process backend errors', async () => {
await net.walkFetch({ headers: new Headers() } as Request)
expect(showModal).toBeCalledWith({
mode: 'alert',
title: 'general.fatalError',
title: trans('general.fatalError'),
dangerousHTML: 'fake exception<br><details>[1] k.php#L2<br>[2] v.php#L3</details>',
type: 'danger',
okButtonType: 'outline-light',

View File

@ -1,6 +1,7 @@
import Vue from 'vue'
import { mount } from '@vue/test-utils'
import { flushPromises } from '../../utils'
import { trans } from '@/scripts/i18n'
import { queryString } from '@/scripts/utils'
import List from '@/views/skinlib/List.vue'
@ -30,7 +31,7 @@ test('empty skin library', () => {
},
})
const wrapper = mount(List)
expect(wrapper.text()).toContain('general.noResult')
expect(wrapper.text()).toContain(trans('general.noResult'))
})
test('toggle texture type', () => {
@ -52,8 +53,8 @@ test('toggle texture type', () => {
expect(btnSteve.classes()).not.toContain('active')
expect(btnAlex.classes()).not.toContain('active')
expect(btnCape.classes()).not.toContain('active')
expect(dropdownToggle.text()).toContain('general.skin')
expect(breadcrumb.text()).toContain('skinlib.filter.skin')
expect(dropdownToggle.text()).toContain(trans('general.skin'))
expect(breadcrumb.text()).toContain(trans('skinlib.filter.skin'))
btnSteve.trigger('click')
expect(btnSkin.classes()).not.toContain('active')
@ -61,7 +62,7 @@ test('toggle texture type', () => {
expect(btnAlex.classes()).not.toContain('active')
expect(btnCape.classes()).not.toContain('active')
expect(dropdownToggle.text()).toContain('Steve')
expect(breadcrumb.text()).toContain('skinlib.filter.steve')
expect(breadcrumb.text()).toContain(trans('skinlib.filter.steve'))
expect(queryString('filter')).toBe('steve')
expect(Vue.prototype.$http.get).toBeCalledWith(
'/skinlib/data',
@ -76,7 +77,7 @@ test('toggle texture type', () => {
expect(btnAlex.classes()).toContain('active')
expect(btnCape.classes()).not.toContain('active')
expect(dropdownToggle.text()).toContain('Alex')
expect(breadcrumb.text()).toContain('skinlib.filter.alex')
expect(breadcrumb.text()).toContain(trans('skinlib.filter.alex'))
expect(Vue.prototype.$http.get).toBeCalledWith(
'/skinlib/data',
{
@ -90,8 +91,8 @@ test('toggle texture type', () => {
expect(btnSteve.classes()).not.toContain('active')
expect(btnAlex.classes()).not.toContain('active')
expect(btnCape.classes()).toContain('active')
expect(dropdownToggle.text()).toContain('general.cape')
expect(breadcrumb.text()).toContain('general.cape')
expect(dropdownToggle.text()).toContain(trans('general.cape'))
expect(breadcrumb.text()).toContain(trans('general.cape'))
expect(Vue.prototype.$http.get).toBeCalledWith(
'/skinlib/data',
{
@ -111,11 +112,11 @@ test('check specified uploader', async () => {
await flushPromises()
const breadcrumb = wrapper.find('.breadcrumb')
const button = wrapper.findAll('.bg-olive').at(2)
expect(breadcrumb.text()).toContain('skinlib.filter.allUsers')
expect(breadcrumb.text()).toContain(trans('skinlib.filter.allUsers'))
button.trigger('click')
expect(button.classes()).toContain('active')
expect(breadcrumb.text()).toContain('skinlib.filter.uploader')
expect(breadcrumb.text()).toContain(trans('skinlib.filter.uploader', { uid: 1 }))
expect(Vue.prototype.$http.get).toBeCalledWith(
'/skinlib/data',
{
@ -143,7 +144,7 @@ test('sort items', () => {
filter: 'skin', uploader: 0, sort: 'likes', keyword: '', page: 1,
},
)
expect(wrapper.text()).toContain('skinlib.sort.likes')
expect(wrapper.text()).toContain(trans('skinlib.sort.likes'))
expect(sortByLikes.classes()).toContain('active')
expect(queryString('sort')).toBe('likes')
@ -154,7 +155,7 @@ test('sort items', () => {
filter: 'skin', uploader: 0, sort: 'time', keyword: '', page: 1,
},
)
expect(wrapper.text()).toContain('skinlib.sort.time')
expect(wrapper.text()).toContain(trans('skinlib.sort.time'))
expect(sortByTime.classes()).toContain('active')
expect(queryString('sort')).toBe('time')
})

View File

@ -1,6 +1,7 @@
import Vue from 'vue'
import { mount } from '@vue/test-utils'
import { flushPromises } from '../../utils'
import { trans } from '@/scripts/i18n'
import { showModal, toast } from '@/scripts/notify'
import Show from '@/views/skinlib/Show.vue'
@ -408,9 +409,9 @@ test('report texture', async () => {
button.trigger('click')
expect(showModal).toBeCalledWith({
mode: 'prompt',
title: 'skinlib.report.title',
title: trans('skinlib.report.title'),
text: '',
placeholder: 'skinlib.report.reason',
placeholder: trans('skinlib.report.reason'),
})
expect(Vue.prototype.$http.post).not.toBeCalled()
@ -418,18 +419,18 @@ test('report texture', async () => {
button.trigger('click')
expect(showModal).toBeCalledWith({
mode: 'prompt',
title: 'skinlib.report.title',
text: 'skinlib.report.negative',
placeholder: 'skinlib.report.reason',
title: trans('skinlib.report.title'),
text: trans('skinlib.report.negative', { score: 5 }),
placeholder: trans('skinlib.report.reason'),
})
wrapper.setData({ reportScore: 5 })
button.trigger('click')
expect(showModal).toBeCalledWith({
mode: 'prompt',
title: 'skinlib.report.title',
text: 'skinlib.report.positive',
placeholder: 'skinlib.report.reason',
title: trans('skinlib.report.title'),
text: trans('skinlib.report.positive', { score: 5 }),
placeholder: trans('skinlib.report.reason'),
})
await flushPromises()
expect(Vue.prototype.$http.post).toBeCalledWith(

View File

@ -1,6 +1,7 @@
import Vue from 'vue'
import { mount } from '@vue/test-utils'
import { flushPromises } from '../../utils'
import { trans } from '@/scripts/i18n'
import Closet from '@/views/user/Closet.vue'
import ClosetItem from '@/components/ClosetItem.vue'
import Previewer from '@/components/Previewer.vue'
@ -112,18 +113,18 @@ test('search textures', () => {
test('empty closet', () => {
Vue.prototype.$http.get.mockResolvedValue({ data: {} })
const wrapper = mount(Closet)
expect(wrapper.find('#skin-category').text()).toContain('user.emptyClosetMsg')
// expect(wrapper.find('#skin-category').text()).toContain(trans('user.emptyClosetMsg'))
wrapper.setData({ category: 'cape' })
expect(wrapper.find('#cape-category').text()).toContain('user.emptyClosetMsg')
// expect(wrapper.find('#cape-category').text()).toContain(trans('user.emptyClosetMsg'))
})
test('no matched search result', () => {
Vue.prototype.$http.get.mockResolvedValue({ data: {} })
const wrapper = mount(Closet)
wrapper.setData({ query: 'q' })
expect(wrapper.find('#skin-category').text()).toContain('general.noResult')
expect(wrapper.find('#skin-category').text()).toContain(trans('general.noResult'))
wrapper.setData({ category: 'cape' })
expect(wrapper.find('#cape-category').text()).toContain('general.noResult')
expect(wrapper.find('#cape-category').text()).toContain(trans('general.noResult'))
})
test('render items', async () => {
@ -155,7 +156,7 @@ test('remove skin item', () => {
const wrapper = mount<Vue & { removeSkinItem(tid: number): void }>(Closet)
wrapper.setData({ skinItems: [{ tid: 1 }] })
wrapper.vm.removeSkinItem(0)
expect(wrapper.find('#skin-category').text()).toContain('user.emptyClosetMsg')
// expect(wrapper.find('#skin-category').text()).toContain(trans('user.emptyClosetMsg'))
})
test('remove cape item', () => {
@ -163,7 +164,7 @@ test('remove cape item', () => {
const wrapper = mount<Vue & { removeCapeItem(tid: number): void }>(Closet)
wrapper.setData({ capeItems: [{ tid: 1 }], category: 'cape' })
wrapper.vm.removeCapeItem(0)
expect(wrapper.find('#cape-category').text()).toContain('user.emptyClosetMsg')
// expect(wrapper.find('#cape-category').text()).toContain(trans('user.emptyClosetMsg'))
})
test('select texture', async () => {
@ -205,7 +206,7 @@ test('apply texture', async () => {
.at(0)
button.trigger('click')
jest.runAllTicks()
expect(wrapper.find('.modal-body').text()).toContain('user.closet.use-as.empty')
expect(wrapper.find('.modal-body').text()).toContain(trans('user.closet.use-as.empty'))
button.trigger('click')
await flushPromises()

View File

@ -1,6 +1,7 @@
import Vue from 'vue'
import { mount } from '@vue/test-utils'
import { flushPromises } from '../../utils'
import { trans } from '@/scripts/i18n'
import { showModal, toast } from '@/scripts/notify'
import Players from '@/views/user/Players.vue'
@ -147,7 +148,7 @@ test('toggle preview mode', () => {
Vue.prototype.$http.get.mockResolvedValueOnce({ data: [] })
const wrapper = mount(Players)
wrapper.find('[data-test="to2d"]').trigger('click')
expect(wrapper.text()).toContain('user.player.texture-empty')
expect(wrapper.text()).toContain(trans('user.player.texture-empty'))
})
test('clear texture', async () => {

View File

@ -1,4 +1,5 @@
import { flushPromises } from '../../../utils'
import { trans } from '@/scripts/i18n'
import { showModal, toast } from '@/scripts/notify'
import { post } from '@/scripts/net'
import handler from '@/views/user/profile/password'
@ -36,7 +37,7 @@ test('change password', async () => {
form.dispatchEvent(event)
await flushPromises()
expect(post).not.toBeCalled()
expect(toast.error).toBeCalledWith('auth.invalidConfirmPwd')
expect(toast.error).toBeCalledWith(trans('auth.invalidConfirmPwd'))
confirm.value = '1'
form.dispatchEvent(event)