Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-06-08 21:08:27 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-06-08 21:08:27 +0300
commit99c01aa6867b91b8d2279eb8d32794ea90d5dcdc (patch)
treeae36b06dd962230381080d9e2a31385cea5f8609 /spec/frontend/behaviors/requires_input_spec.js
parent5693fb6ba7d21ba7b79775543a3f195eb989664b (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/behaviors/requires_input_spec.js')
-rw-r--r--spec/frontend/behaviors/requires_input_spec.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/spec/frontend/behaviors/requires_input_spec.js b/spec/frontend/behaviors/requires_input_spec.js
new file mode 100644
index 00000000000..617fe49b059
--- /dev/null
+++ b/spec/frontend/behaviors/requires_input_spec.js
@@ -0,0 +1,62 @@
+import $ from 'jquery';
+import '~/behaviors/requires_input';
+
+describe('requiresInput', () => {
+ let submitButton;
+ preloadFixtures('branches/new_branch.html');
+
+ beforeEach(() => {
+ loadFixtures('branches/new_branch.html');
+ submitButton = $('button[type="submit"]');
+ });
+
+ it('disables submit when any field is required', () => {
+ $('.js-requires-input').requiresInput();
+
+ expect(submitButton).toBeDisabled();
+ });
+
+ it('enables submit when no field is required', () => {
+ $('*[required=required]').prop('required', false);
+ $('.js-requires-input').requiresInput();
+
+ expect(submitButton).not.toBeDisabled();
+ });
+
+ it('enables submit when all required fields are pre-filled', () => {
+ $('*[required=required]').remove();
+ $('.js-requires-input').requiresInput();
+
+ expect($('.submit')).not.toBeDisabled();
+ });
+
+ it('enables submit when all required fields receive input', () => {
+ $('.js-requires-input').requiresInput();
+ $('#required1')
+ .val('input1')
+ .change();
+
+ expect(submitButton).toBeDisabled();
+
+ $('#optional1')
+ .val('input1')
+ .change();
+
+ expect(submitButton).toBeDisabled();
+
+ $('#required2')
+ .val('input2')
+ .change();
+ $('#required3')
+ .val('input3')
+ .change();
+ $('#required4')
+ .val('input4')
+ .change();
+ $('#required5')
+ .val('1')
+ .change();
+
+ expect($('.submit')).not.toBeDisabled();
+ });
+});