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

100% Statements 30/30
100% Branches 0/0
100% Functions 7/7
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                                                                               
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 DatePicker from '../../src/datePicker/index'
import moment from '../../src/datePicker/moment'
 
describe('DatePicker', () => {
  it('存在.', () => {
    expect(DatePicker).to.be.ok
  })
  it('默认 value 为空.', () => {
    const wrapper = mount(DatePicker, {
      propsData: {
        value: ''
      }
    })
    const input = wrapper.find('input')
    expect(input.element.value).to.eq('')
  })
  it('设置 value .', () => {
    const callback = sinon.fake()
    const wrapper = mount(DatePicker, {
      propsData: {
        value: new Date('2019/09/08')
      },
      listeners:{
        'input': callback
      }
    })
    const input = wrapper.find('input')
    expect(input.element.value).to.eq('2019-09-08')
    input.trigger('click')
    const today = wrapper.find('.today')
    today.trigger('click')
    expect(callback).to.have.been.called
    expect(wrapper.find('.am-date-picker-pop').exists()).to.eq(false)
  })
  it('可以设置 placeholder.', () => {
    const wrapper = mount(DatePicker, {
      propsData: {
        placeholder: 'settings'
      }
    })
    let el = wrapper.find('input')
    expect(el.attributes('placeholder')).to.eq('settings')
  })
  it('可以设置 disabled.', () => {
    const wrapper = mount(DatePicker, {
      propsData: {
        disabled: true
      }
    })
    wrapper.find('input').trigger('click')
    expect(wrapper.find('.am-popover-content').exists()).to.eq(false)
  })
  it('可以设置 readonly.', () => {
    const wrapper = mount(DatePicker, {
      propsData: {
        readonly: true
      }
    })
    const el = wrapper.vm.$el.querySelector('input')
    expect(el.readOnly).to.be.true
  })
})