Fix the input confirmation validation for the delete branches modal
This commit is contained in:
parent
dd557c4649
commit
c34268c8de
|
@ -16,6 +16,7 @@ class DeleteModal {
|
|||
bindEvents() {
|
||||
this.$toggleBtns.on('click', this.setModalData.bind(this));
|
||||
this.$confirmInput.on('input', this.setDeleteDisabled.bind(this));
|
||||
this.$deleteBtn.on('click', this.setDisableDeleteButton.bind(this));
|
||||
}
|
||||
|
||||
setModalData(e) {
|
||||
|
@ -30,6 +31,16 @@ class DeleteModal {
|
|||
this.$deleteBtn.attr('disabled', e.currentTarget.value !== this.branchName);
|
||||
}
|
||||
|
||||
setDisableDeleteButton(e) {
|
||||
if (this.$deleteBtn.is('[disabled]')) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
updateModal() {
|
||||
this.$branchName.text(this.branchName);
|
||||
this.$confirmInput.val('');
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix confirmation modal for deleting a protected branch
|
||||
merge_request: 18176
|
||||
author: Paul Bonaud @PaulRbR
|
||||
type: fixed
|
|
@ -0,0 +1,40 @@
|
|||
import $ from 'jquery';
|
||||
import DeleteModal from '~/branches/branches_delete_modal';
|
||||
|
||||
describe('branches delete modal', () => {
|
||||
describe('setDisableDeleteButton', () => {
|
||||
let submitSpy;
|
||||
let $deleteButton;
|
||||
|
||||
beforeEach(() => {
|
||||
setFixtures(`
|
||||
<div id="modal-delete-branch">
|
||||
<form>
|
||||
<button type="submit" class="js-delete-branch">Delete</button>
|
||||
</form>
|
||||
</div>
|
||||
`);
|
||||
$deleteButton = $('.js-delete-branch');
|
||||
submitSpy = jasmine.createSpy('submit').and.callFake(event => event.preventDefault());
|
||||
$('#modal-delete-branch form').on('submit', submitSpy);
|
||||
// eslint-disable-next-line no-new
|
||||
new DeleteModal();
|
||||
});
|
||||
|
||||
it('does not submit if button is disabled', () => {
|
||||
$deleteButton.attr('disabled', true);
|
||||
|
||||
$deleteButton.click();
|
||||
|
||||
expect(submitSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('submits if button is not disabled', () => {
|
||||
$deleteButton.attr('disabled', false);
|
||||
|
||||
$deleteButton.click();
|
||||
|
||||
expect(submitSpy).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue