summaryrefslogtreecommitdiff
path: root/spec/frontend/ci/ci_variable_list/ci_variable_list/native_form_variable_list_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/ci/ci_variable_list/ci_variable_list/native_form_variable_list_spec.js')
-rw-r--r--spec/frontend/ci/ci_variable_list/ci_variable_list/native_form_variable_list_spec.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/frontend/ci/ci_variable_list/ci_variable_list/native_form_variable_list_spec.js b/spec/frontend/ci/ci_variable_list/ci_variable_list/native_form_variable_list_spec.js
new file mode 100644
index 00000000000..71e8e6d3afb
--- /dev/null
+++ b/spec/frontend/ci/ci_variable_list/ci_variable_list/native_form_variable_list_spec.js
@@ -0,0 +1,40 @@
+import $ from 'jquery';
+import { loadHTMLFixture, resetHTMLFixture } from 'helpers/fixtures';
+import setupNativeFormVariableList from '~/ci/ci_variable_list/native_form_variable_list';
+
+describe('NativeFormVariableList', () => {
+ let $wrapper;
+
+ beforeEach(() => {
+ loadHTMLFixture('pipeline_schedules/edit.html');
+ $wrapper = $('.js-ci-variable-list-section');
+
+ setupNativeFormVariableList({
+ container: $wrapper,
+ formField: 'schedule',
+ });
+ });
+
+ afterEach(() => {
+ resetHTMLFixture();
+ });
+
+ describe('onFormSubmit', () => {
+ it('should clear out the `name` attribute on the inputs for the last empty row on form submission (avoid BE validation)', () => {
+ const $row = $wrapper.find('.js-row');
+
+ expect($row.find('.js-ci-variable-input-key').attr('name')).toBe(
+ 'schedule[variables_attributes][][key]',
+ );
+
+ expect($row.find('.js-ci-variable-input-value').attr('name')).toBe(
+ 'schedule[variables_attributes][][secret_value]',
+ );
+
+ $wrapper.closest('form').trigger('trigger-submit');
+
+ expect($row.find('.js-ci-variable-input-key').attr('name')).toBe('');
+ expect($row.find('.js-ci-variable-input-value').attr('name')).toBe('');
+ });
+ });
+});