import { mount } from '@vue/test-utils' import { asyncExpect } from '@/tests/utils' import Spin from '..' describe('Spin', () => { it('should only affect the spin element when set style to a nested <Spin>xx</Spin>', () => { const wrapper = mount({ render () { return ( <Spin style={{ background: 'red' }}> <div>content</div> </Spin> ) }, }) expect(wrapper.html()).toMatchSnapshot() // expect(wrapper.findAll('.ant-spin-nested-loading').at(0).prop('style')).toBe(null) // expect(wrapper.findAll('.ant-spin').at(0).prop('style').background).toBe('red') }) it('should render custom indicator when it\'s set', () => { // const customIndicator = <div className='custom-indicator' /> const wrapper = mount( { render () { return ( <Spin><div slot='indicator' class='custom-indicator' /></Spin> ) }, }) expect(wrapper.html()).toMatchSnapshot() }) it('should render with delay when it\'s mounted with spinning=true and delay', async () => { const props = { propsData: { delay: 500, spinning: true, }, async: false, } const wrapper = mount(Spin, props) await asyncExpect(() => { expect(wrapper.find('.ant-spin').classes().includes('ant-spin-spinning')).toEqual(false) }) }) it('should be controlled by spinning', async () => { const props = { propsData: { spinning: false, }, async: false, } const wrapper = mount(Spin, props) await asyncExpect(() => { expect(wrapper.vm.stateSpinning).toBe(false) wrapper.setProps({ spinning: true }) expect(wrapper.vm.stateSpinning).toBe(true) }) }) })