taro-s4s
Version:
Nerv-multi多端开发解决方案
89 lines (75 loc) • 2.2 kB
JavaScript
/* eslint-disable */
import Taro from '../index.js'
import 'jest-dom/extend-expect'
Taro.initNativeApi(Taro)
describe('loading', () => {
test('options.title should be String', () => {
const success = jest.fn()
const fail = jest.fn()
const complete = jest.fn()
expect.assertions(4)
Taro.showLoading({
title: 123,
success,
fail,
complete
})
.catch(err => {
const excpectErrObj = { errMsg: 'showLoading:fail parameter error: parameter.title should be String instead of Number' }
expect(success.mock.calls.length).toBe(0)
expect(fail).toHaveBeenCalledWith(excpectErrObj)
expect(complete).toHaveBeenCalledWith(excpectErrObj)
expect(err).toEqual(excpectErrObj)
})
})
test('basic test', done => {
const titleContent = 'xxx'
const success = jest.fn()
const complete = jest.fn()
const errObj = { errMsg: 'showLoading:ok' }
Taro.showLoading({
title: titleContent,
success,
complete
})
.then(res => {
expect(res).toEqual(errObj)
})
const toast = document.body.lastChild
expect(toast.childNodes.length).toBe(2)
expect(toast).not.toBeVisible()
const mask = toast.firstChild
const icon = toast.lastChild.firstChild
const title = toast.lastChild.lastChild
expect(icon.style.animation).toMatch('taroLoading 1s steps(12, end) infinite')
expect(title).toHaveTextContent(titleContent)
expect(success).toHaveBeenCalledWith(errObj)
expect(complete).toHaveBeenCalledWith(errObj)
setTimeout(() => {
expect(toast).toBeVisible()
expect(mask).not.toBeVisible()
done()
}, 200)
})
test('should show mask', done => {
Taro.showLoading({
title: 'hello',
mask: true
})
const toast = document.body.lastChild
const mask = toast.firstChild
setTimeout(() => {
expect(mask).toBeVisible()
done()
}, 200)
})
test('should hide loading immediately', done => {
Taro.showLoading()
Taro.hideLoading()
const toast = document.body.lastChild
setTimeout(() => {
expect(toast).not.toBeVisible()
done()
}, 500)
})
})