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

100% Statements 28/28
100% Branches 0/0
100% Functions 7/7
100% Lines 28/28
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 80                                                                                                       
import chai, { expect } from 'chai'
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
chai.use(sinonChai)
import { mount, shallowMount } from '@vue/test-utils'
 
import Vue from 'vue'
import Popover from '../../src/popover/popover'
 
describe('Popover', () => {
  it('存在.', () => {
    expect(Popover).to.be.ok
  })
  it('可以设置 position.', () => {
    const wrapper = mount(Popover, {
      slots: {
        default: { template: `<button>click</button>` },
        popover: `<div>这是弹出内容哦</div>`
      },
      propsData: {
        position: 'bottom'
      }
    })
    wrapper.find('button').trigger('click')
    let classs = wrapper.find('.am-popover-content').classes()
    expect(classs).to.include('position-bottom')
  })
  it('trigger默认为click', () => {
    const wrapper = mount(Popover, {
      attachToDocument: true,
      slots: {
        default: { template: `<button>click</button>` },
        popover: `<div>这是弹出内容哦</div>`
      }
    })
    wrapper.find('button').trigger('click')
    expect(wrapper.find('.am-popover-content').exists()).to.eq(true)
  })
  it('可以设置  trigger为hover', () => {
    const wrapper = mount(Popover, {
      propsData: {
        trigger: 'hover'
      }
    })
    expect(wrapper.find('.am-popover-content').element).to.not.exist
    wrapper.find('.am-popover-wrapper').trigger('mouseenter')
    expect(wrapper.find('.am-popover-content').element).to.exist
    wrapper.find('.am-popover-wrapper').trigger('mouseleave')
    expect(wrapper.find('.am-popover-content').element).to.not.exist
  })
  it('可以设置 disabled.', () => {
    const wrapper = mount(Popover, {
      slots: {
        default: { template: `<button>click</button>` },
        popover: `<div>这是弹出内容哦</div>`
      },
      propsData: {
        disabled: true,
        position: 'bottom'
      }
    })
    wrapper.find('button').trigger('click')
    expect(wrapper.find('.am-popover-content').exists()).to.eq(false)
  })
  it('可以设置 zIndex.', () => {
    const wrapper = mount(Popover, {
      slots: {
        default: { template: `<button>click</button>` },
        popover: `<div>这是弹出内容哦</div>`
      },
      propsData: {
        position: 'bottom',
        zIndex: 100
      }
    })
    wrapper.find('button').trigger('click')
    expect(wrapper.attributes('data-zindex')).to.be.eq('100')
  })
})