blob: 9467056f04cd5452f063bbb8976a7519c79bb156 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/* eslint-disable space-before-function-paren, no-var */
/*= require behaviors/requires_input */
(function() {
describe('requiresInput', function() {
preloadFixtures('static/behaviors/requires_input.html.raw');
beforeEach(function() {
return loadFixtures('static/behaviors/requires_input.html.raw');
});
it('disables submit when any field is required', function() {
$('.js-requires-input').requiresInput();
return expect($('.submit')).toBeDisabled();
});
it('enables submit when no field is required', function() {
$('*[required=required]').removeAttr('required');
$('.js-requires-input').requiresInput();
return expect($('.submit')).not.toBeDisabled();
});
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();
expect($('.submit')).toBeDisabled();
$('#optional1').val('input1').change();
expect($('.submit')).toBeDisabled();
$('#required2').val('input2').change();
$('#required3').val('input3').change();
$('#required4').val('input4').change();
$('#required5').val('1').change();
return expect($('.submit')).not.toBeDisabled();
});
return it('is called on page:load event', function() {
var spy;
spy = spyOn($.fn, 'requiresInput');
$(document).trigger('page:load');
return expect(spy).toHaveBeenCalled();
});
});
}).call(this);
|