All files / slider/__tests__ Slider-test.js

58.06% Statements 18/31
100% Branches 0/0
66.67% Functions 4/6
58.06% Lines 18/31
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    1x 1x 1x 1x   1x 1x 1x 1x     1x 1x 1x         1x     1x 1x 1x         1x     1x                                       1x                      
/* global it, describe, KeyboardEvent */
 
import assert from 'assert'
import React from 'react'
import Slider from '../'
import {mount} from 'enzyme'
 
describe('Slider', () => {
  it('should have a default value of 50', () => {
    const wrapper = mount(<Slider />)
    assert.equal(wrapper.find('.Slider-input').node.value, '50')
  })
 
  it('should reflect changes made to input type range', () => {
    const wrapper = mount(<Slider />)
    wrapper.find('.Slider-input').simulate('change', {
      target: {
        value: 45
      }
    })
    assert.equal(wrapper.find('.Slider-input').node.value, '45')
  })
 
  it('should fade out the thumb when value is zero', () => {
    const wrapper = mount(<Slider />)
    wrapper.find('.Slider-input').simulate('change', {
      target: {
        value: 0
      }
    })
    assert(wrapper.find('.Slider-thumb').hasClass('is-zero'))
  })
 
  it.skip('should work with keyboard arrow keys', () => {
    const wrapper = mount(<Slider />)
    // make sure default value is 50
    assert.equal(wrapper.find('.Slider-input').node.value, '50')
    // simulate keyboard event
    var event = new KeyboardEvent('keypress', {
      key: 'ArrowLeft',
      keyCode: 37
    })
    wrapper.find('.Slider-input').node.dispatchEvent(event)
    assert.equal(wrapper.find('.Slider-input').node.value, '49')
    // simulate keyboard event
    event = new KeyboardEvent('keypress', {
      key: 'ArrowRight',
      keyCode: 39
    })
    wrapper.find('.Slider-input').node.dispatchEvent(event)
    assert.equal(wrapper.find('.Slider-input').node.value, '50')
  })
 
  it.skip('should work with custom step', () => {
    const wrapper = mount(<Slider step={10} />)
    assert.equal(wrapper.find('.Slider-input').node.value, '50')
    let event = new KeyboardEvent('keypress', {
      key: 'ArrowLeft',
      keyCode: 37
    })
    wrapper.find('.Slider-input').node.dispatchEvent(event)
    assert.equal(wrapper.find('.Slider-input').node.value, '40')
  })
})