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

100% Statements 30/30
100% Branches 0/0
100% Functions 9/9
100% Lines 30/30
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 Pager from '../../src/pager/pager'
 
describe('Pager', () => {
  it('存在.', () => {
    expect(Pager).to.be.ok
  })
  it('可以设置 currentPage.', () => {
    const wrapper = mount(Pager, {
      propsData: {
        currentPage: 2,
        totalPage: 10
      }
    })
    expect(wrapper.find('[data-current="2"]').exists()).to.be.true
  })
  it('可以设置 totalPage',()=>{
    const wrapper = mount(Pager, {
      propsData: {
        currentPage: 4,
        totalPage: 20
      }
    })
    expect(wrapper.find('[data-page="20"]').exists()).to.be.true
  })
  it('默认 hideOnSinglePage 为true',()=>{
    const wrapper = mount(Pager, {
      propsData: {
        currentPage: 1,
        totalPage: 1
      }
    })
    expect(wrapper.classes('hide')).to.be.true
  })
  it('可以设置 hideOnSinglePage',()=>{
    const wrapper = mount(Pager, {
      propsData: {
        currentPage: 1,
        totalPage: 1,
        hideOnSinglePage: false
      }
    })
    expect(wrapper.classes('hide')).to.be.false
    expect(wrapper.isVisible()).to.be.true
  })
  it('可以设置 hideOnSinglePage',()=>{
    const wrapper = mount(Pager, {
      propsData: {
        currentPage: 1,
        totalPage: 1,
        hideOnSinglePage: false
      }
    })
    expect(wrapper.classes('hide')).to.be.false
    expect(wrapper.isVisible()).to.be.true
  })
  it('点击时可以改变 currentPage.', (done) => {
    const wrapper = mount(Pager, {
      propsData: {
        currentPage: 2,
        totalPage: 10
      }
    })
      wrapper.find('[data-page="3"].other').trigger('click')
      wrapper.setProps({ currentPage: 3 })
      setTimeout(()=>{
        expect(wrapper.find('[data-current="2"]').exists()).to.be.false
        expect(wrapper.find('[data-page="2"]').exists()).to.be.true
        expect(wrapper.find('[data-current="3"]').exists()).to.be.true
        done()
      })
  })
})