atom-user-support-helper
Version:
A helper for user support features in Atom.io
55 lines (48 loc) • 1.74 kB
JavaScript
'use babel'
import PromptViewMultipleList from '../lib/prompt-view-multiple-list';
describe('PromptViewMultipleList', () => {
describe('when an item is clicked', () => {
it('adds the item to the selected items if it is not selected.', () => {
const list = new PromptViewMultipleList()
list.initialize()
list.open(['1', '2', '3'])
list.confirmed('2')
expect(list.element.querySelector('ol.list-group').children[1].classList.contains('prompt-selected')).toBe(true)
expect(list.getSelectedItems()[0]).toBe('2')
})
it('removes the item to the selected items if it is selected.', () => {
const list = new PromptViewMultipleList()
list.initialize()
list.open(['1', '2', '3'])
list.confirmed('2')
list.confirmed('2')
expect(list.element.querySelector('ol.list-group').children[1].classList.contains('prompt-selected')).toBe(false)
expect(list.getSelectedItems().length).toBe(0)
})
})
describe('.setSelectedItems', () => {
it('changes the selected items', () => {
const list = new PromptViewMultipleList()
list.initialize()
list.open(['1', '2', '3'])
list.setSelectedItems(['1'])
expect(list.getSelectedItems().length).toBe(1)
expect(list.getSelectedItems()[0]).toBe('1')
})
})
describe('.onChanged', () => {
it('emit the event.', () => {
let isCalled = false
const callback = (item) => {
expect(item[0]).toBe('1')
isCalled = true
}
const list = new PromptViewMultipleList()
list.initialize()
list.open(['1', '2', '3'])
list.onChanged(callback)
list.setSelectedItems(['1'])
expect(isCalled).toBe(true)
})
})
})