debian-mirror-gitlab/spec/javascripts/behaviors/requires_input_spec.js

40 lines
1.5 KiB
JavaScript
Raw Normal View History

2017-08-17 22:00:37 +05:30
/* eslint-disable space-before-function-paren, no-var */
2016-09-13 17:45:13 +05:30
2017-09-10 17:25:29 +05:30
import '~/behaviors/requires_input';
2016-09-13 17:45:13 +05:30
(function() {
describe('requiresInput', function() {
2017-08-17 22:00:37 +05:30
preloadFixtures('branches/new_branch.html.raw');
2016-09-13 17:45:13 +05:30
beforeEach(function() {
2017-08-17 22:00:37 +05:30
loadFixtures('branches/new_branch.html.raw');
this.submitButton = $('button[type="submit"]');
2016-09-13 17:45:13 +05:30
});
it('disables submit when any field is required', function() {
$('.js-requires-input').requiresInput();
2017-08-17 22:00:37 +05:30
return expect(this.submitButton).toBeDisabled();
2016-09-13 17:45:13 +05:30
});
it('enables submit when no field is required', function() {
$('*[required=required]').removeAttr('required');
$('.js-requires-input').requiresInput();
2017-08-17 22:00:37 +05:30
return expect(this.submitButton).not.toBeDisabled();
2016-09-13 17:45:13 +05:30
});
it('enables submit when all required fields are pre-filled', function() {
$('*[required=required]').remove();
$('.js-requires-input').requiresInput();
return expect($('.submit')).not.toBeDisabled();
});
it('enables submit when all required fields receive input', function() {
$('.js-requires-input').requiresInput();
$('#required1').val('input1').change();
2017-08-17 22:00:37 +05:30
expect(this.submitButton).toBeDisabled();
2016-09-13 17:45:13 +05:30
$('#optional1').val('input1').change();
2017-08-17 22:00:37 +05:30
expect(this.submitButton).toBeDisabled();
2016-09-13 17:45:13 +05:30
$('#required2').val('input2').change();
$('#required3').val('input3').change();
$('#required4').val('input4').change();
$('#required5').val('1').change();
return expect($('.submit')).not.toBeDisabled();
});
});
2017-08-17 22:00:37 +05:30
}).call(window);