/
githubmirror
/
element
Обзор
Документация
Войти
/
githubmirror
/
element
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
test/unit/specs/util.clickoutside.spec.js
169 строк
4 KB
Nicolaj Egelund
Added clickoutside drag-click test
15 мар 2017, 10:40
15 мар 2017, 10:40
220f154
Код
Авторство
О чём код?
import Clickoutside from 'element-ui/src/utils/clickoutside'; const ctx = '@@clickoutsideContext'; import { triggerEvent, triggerClick } from '../util'; describe('Utils:Clickoutside', () => { it('create', () => { let count = 0; const el = document.createElement('div'); const vnode = { context: { handleClick: () => ++count } }; const binding = { expression: 'handleClick' }; Clickoutside.bind(el, binding, vnode); expect(el[ctx]).to.exist; }); it('cotext not exist', () => { const el = document.createElement('div'); const vnode = {}; const binding = { expression: 'handleClick' }; Clickoutside.bind(el, binding, vnode); expect(el[ctx]).to.exist; }); it('binding expression', () => { const el = document.createElement('div'); let count = 0; const vnode = { context: { handleClick: () => ++count } }; const binding = { expression: 'handleClick' }; Clickoutside.bind(el, binding, vnode); triggerClick(document); expect(count).to.equal(1); }); it('click inside', () => { const el = document.createElement('div'); const insideElm = document.createElement('div'); let count = 0; const vnode = { context: { handleClick: () => ++count } }; const binding = { expression: 'handleClick' }; el.appendChild(insideElm); Clickoutside.bind(el, binding, vnode); triggerClick(insideElm); expect(count).to.equal(0); triggerClick(document); expect(count).to.equal(1); }); it('tigger event in popperElm', () => { const el = document.createElement('div'); const insideElm = document.createElement('div'); let count = 0; const vnode = { context: { handleClick: () => ++count, popperElm: document.createElement('div') } }; const binding = { expression: 'handleClick' }; vnode.context.popperElm.appendChild(insideElm); Clickoutside.bind(el, binding, vnode); triggerClick(insideElm); expect(count).to.equal(0); triggerClick(document); expect(count).to.equal(1); }); it('binding value', () => { const el = document.createElement('div'); let count = 0; const vnode = { context: {} }; const binding = { value: () => ++count }; Clickoutside.bind(el, binding, vnode); expect(count).to.equal(0); triggerClick(document); expect(count).to.equal(1); }); it('update', () => { let count = 0; const el = document.createElement('div'); const vnode = { context: { abc: () => ++count, ddd: () => ++count } }; const binding = { expression: 'abc' }; const newBinding = { expression: 'ddd' }; Clickoutside.bind(el, binding, vnode); expect(el[ctx].methodName).to.equal('abc'); Clickoutside.update(el, newBinding); expect(el[ctx].methodName).to.equal('ddd'); }); it('unbind', () => { const el = document.createElement('div'); let count = 0; const vnode = { context: {} }; const binding = { value: () => ++count }; Clickoutside.bind(el, binding, vnode); triggerClick(document); Clickoutside.unbind(el); triggerClick(document); expect(count).to.equal(1); }); it('stays open on drag click', () => { const el = document.createElement('div'); const insideElm = document.createElement('div'); let count = 0; const vnode = { context: { handleClick: () => ++count } }; const binding = { expression: 'handleClick' }; el.appendChild(insideElm); Clickoutside.bind(el, binding, vnode); triggerEvent(insideElm, 'mousedown'); triggerEvent(document, 'mouseup'); expect(count).to.equal(1); }); });