Commit cf104525 authored by Kushal Pandya's avatar Kushal Pandya

Fix labels dropdown causing form submission

Prevent labels dropdown to bubble up Return/Enter key
press event to parent form leading to form submission.

Changelog: fixed
parent a05f26bf
...@@ -132,6 +132,9 @@ export default { ...@@ -132,6 +132,9 @@ export default {
} else if (e.keyCode === ENTER_KEY_CODE && this.currentHighlightItem > -1) { } else if (e.keyCode === ENTER_KEY_CODE && this.currentHighlightItem > -1) {
this.updateSelectedLabels([this.visibleLabels[this.currentHighlightItem]]); this.updateSelectedLabels([this.visibleLabels[this.currentHighlightItem]]);
this.searchKey = ''; this.searchKey = '';
// Prevent parent form submission upon hitting enter.
e.preventDefault();
} else if (e.keyCode === ESC_KEY_CODE) { } else if (e.keyCode === ESC_KEY_CODE) {
this.toggleDropdownContents(); this.toggleDropdownContents();
} }
......
...@@ -116,6 +116,8 @@ describe('DropdownContentsLabelsView', () => { ...@@ -116,6 +116,8 @@ describe('DropdownContentsLabelsView', () => {
}); });
describe('methods', () => { describe('methods', () => {
const fakePreventDefault = jest.fn();
describe('isLabelSelected', () => { describe('isLabelSelected', () => {
it('returns true when provided `label` param is one of the selected labels', () => { it('returns true when provided `label` param is one of the selected labels', () => {
expect(wrapper.vm.isLabelSelected(mockRegularLabel)).toBe(true); expect(wrapper.vm.isLabelSelected(mockRegularLabel)).toBe(true);
...@@ -191,9 +193,11 @@ describe('DropdownContentsLabelsView', () => { ...@@ -191,9 +193,11 @@ describe('DropdownContentsLabelsView', () => {
wrapper.vm.handleKeyDown({ wrapper.vm.handleKeyDown({
keyCode: ENTER_KEY_CODE, keyCode: ENTER_KEY_CODE,
preventDefault: fakePreventDefault,
}); });
expect(wrapper.vm.searchKey).toBe(''); expect(wrapper.vm.searchKey).toBe('');
expect(fakePreventDefault).toHaveBeenCalled();
}); });
it('calls action `updateSelectedLabels` with currently highlighted label when Enter key is pressed', () => { it('calls action `updateSelectedLabels` with currently highlighted label when Enter key is pressed', () => {
...@@ -204,6 +208,7 @@ describe('DropdownContentsLabelsView', () => { ...@@ -204,6 +208,7 @@ describe('DropdownContentsLabelsView', () => {
wrapper.vm.handleKeyDown({ wrapper.vm.handleKeyDown({
keyCode: ENTER_KEY_CODE, keyCode: ENTER_KEY_CODE,
preventDefault: fakePreventDefault,
}); });
expect(wrapper.vm.updateSelectedLabels).toHaveBeenCalledWith([ expect(wrapper.vm.updateSelectedLabels).toHaveBeenCalledWith([
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment