all files / tests/unit/ message.spec.js

100% Statements 36/36
100% Branches 0/0
100% Functions 8/8
100% Lines 36/36
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79                                                                                     
import chai, { expect } from 'chai'
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
chai.use(sinonChai)
 
import { mount } from '@vue/test-utils'
import Message from '../../src/message/message'
 
describe('Message', () => {
  it('Message 存在', () => {
    expect(Message).to.be.ok
  })
  it('设置 title', () => {
    const wrapper = mount(Message, {
      propsData: {
        title: 'test'
      }
    })
    expect(wrapper.props().title).to.eq('test')
  })
  it('默认 title', () => {
    const wrapper = mount(Message)
    expect(wrapper.props().title).to.eq('标题')
  })
 
  it('设置 cancelButton', done => {
    const callback = sinon.fake()
    const wrapper = mount(Message, {
      propsData: {
        cancelButton: {
          text: 'c',
          callback
        },
        confirmButton: {}
      },
      slots: {
        default: 'ha'
      }
    })
    wrapper.setData({ visible: true })
    setTimeout(() => {
      const btn = wrapper.findAll('.am-message-btn')
      expect(btn.at(0).exists()).to.eq(true)
      expect(btn.at(0).text()).to.eq('c')
      expect(btn.length).to.eq(1)
      btn.at(0).trigger('click')
      expect(callback).to.have.been.called
      expect(wrapper.html()).to.eq(undefined)
      done()
    }, 20)
  })
  it('设置 confirmButton', done => {
    const callback = sinon.fake()
    const wrapper = mount(Message, {
      propsData: {
        confirmButton: {
          text: 'a',
          callback
        },
        cancelButton: {}
      },
      slots: {
        default: 'ha'
      }
    })
    wrapper.setData({ visible: true })
    setTimeout(() => {
      const btn = wrapper.findAll('.am-message-btn')
      expect(btn.at(0).exists()).to.eq(true)
      expect(btn.at(0).text()).to.eq('a')
      expect(btn.length).to.eq(1)
      btn.at(0).trigger('click')
      expect(callback).to.have.been.called
      expect(wrapper.html()).to.eq(undefined)
      done()
    }, 20)
  })
})