event.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import BScroll from 'scroll/index'
  2. describe('BScroll - events', () => {
  3. let wrapper, scroller, scroll
  4. before(() => {
  5. wrapper = document.createElement('div')
  6. scroller = document.createElement('div')
  7. wrapper.appendChild(scroller)
  8. scroll = new BScroll(wrapper, {
  9. tap: true,
  10. click: true,
  11. disableMouse: false
  12. })
  13. })
  14. // TODO: use mock to detect event function
  15. it('once then off', () => {
  16. let test = function () {
  17. return 'test once'
  18. }
  19. scroll.once('test', test)
  20. expect(scroll._events['test'][0][0].fn)
  21. .to.be.equal(test)
  22. scroll.off('test', test)
  23. expect(scroll._events['test'][0])
  24. .to.not.be.ok
  25. })
  26. it('remove the correct callback', () => {
  27. let test1 = function() {}
  28. let test2 = function() {}
  29. scroll.on('test2', test1)
  30. scroll.on('test2', test2)
  31. const cbList = scroll._events['test2']
  32. expect(cbList.length)
  33. .to.be.equal(2)
  34. expect(cbList[0][0])
  35. .to.be.equal(test1)
  36. scroll.off('test2', test1)
  37. expect(cbList.length)
  38. .to.be.equal(1)
  39. expect(cbList[0][0])
  40. .to.be.equal(test2)
  41. })
  42. })