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

100% Statements 17/17
100% Branches 0/0
100% Functions 4/4
100% Lines 17/17
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                                                               
import chai, { expect } from "chai";
import Vue from 'vue'
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
chai.use(sinonChai)
import { mount } from "@vue/test-utils"
import Popover from "@/popover.vue";
 
describe("Popover.vue", () => {
    it('存在.', () => {
        expect(Popover).to.exist
    })
 
    it('可以设置position.', async () => {
        const wrapper = mount(Popover, {
            slots: {
                default: { template: `<button>点我66</button>` },
                content: '<div>弹出内容123</div>'
            },
            propsData: {
                position: 'right'
            }
        })
        wrapper.find('button').trigger('click')
        await wrapper.vm.$nextTick()
        const contentWrapper = document.getElementById('contentWrapper')
        expect(contentWrapper.classList.contains('rightPosition')).to.equal(true)
        //移除该弹窗框在document的节点
        document.getElementById("contentWrapper").parentNode.removeChild(document.getElementById("contentWrapper"))
    })
 
    it('可以设置trigger.', async () => {
        const wrapper = mount(Popover, {
            slots: {
                default: { template: `<button>点我66</button>` },
                content: '<div>弹出内容123</div>'
            },
            propsData: {
                position: 'right',
                trigger: 'hover'
            }
        })
        expect(document.getElementById('contentWrapper')).to.not.exist
        wrapper.find('.popover').trigger('mouseenter')
        await wrapper.vm.$nextTick()
        expect(document.getElementById('contentWrapper')).to.exist
    })
});