Commit 80b9309a authored by Natalia Tepluhina's avatar Natalia Tepluhina

Merge branch 'vs-migrate-ci-variable-list-to-jest' into 'master'

Migrate ee/ci_variable_list to Jest

Closes #194273

See merge request gitlab-org/gitlab!28461
parents f30ccc2d 2e27873e
import $ from 'jquery'; import $ from 'jquery';
import getSetTimeoutPromise from 'spec/helpers/set_timeout_promise_helper';
import VariableList from '~/ci_variable_list/ci_variable_list'; import VariableList from '~/ci_variable_list/ci_variable_list';
describe('VariableList (EE features)', () => { describe('VariableList (EE features)', () => {
...@@ -37,12 +36,12 @@ describe('VariableList (EE features)', () => { ...@@ -37,12 +36,12 @@ describe('VariableList (EE features)', () => {
$row.find('.js-variable-environment-dropdown-wrapper .js-dropdown-create-new-item').click(); $row.find('.js-variable-environment-dropdown-wrapper .js-dropdown-create-new-item').click();
} }
it('should add another row when editing the last rows environment dropdown', done => { it('should add another row when editing the last rows environment dropdown', () => {
addRowByNewEnvironment('someenv'); addRowByNewEnvironment('someenv');
getSetTimeoutPromise() jest.runOnlyPendingTimers();
.then(() => {
expect($wrapper.find('.js-row').length).toBe(2); expect($wrapper.find('.js-row')).toHaveLength(2);
// Check for the correct default in the new row // Check for the correct default in the new row
const $environmentInput = $wrapper const $environmentInput = $wrapper
...@@ -50,41 +49,36 @@ describe('VariableList (EE features)', () => { ...@@ -50,41 +49,36 @@ describe('VariableList (EE features)', () => {
.find('input[name="variables[variables_attributes][][environment_scope]"]'); .find('input[name="variables[variables_attributes][][environment_scope]"]');
expect($environmentInput.val()).toBe('*'); expect($environmentInput.val()).toBe('*');
})
.then(done)
.catch(done.fail);
}); });
it('should update dropdown with new environment values and remove values when row is removed', done => { it('should update dropdown with new environment values and remove values when row is removed', () => {
addRowByNewEnvironment('someenv'); addRowByNewEnvironment('someenv');
const $row = $wrapper.find('.js-row:last-child'); const $row = $wrapper.find('.js-row:last-child');
$row.find('.js-variable-environment-toggle').click(); $row.find('.js-variable-environment-toggle').click();
getSetTimeoutPromise() jest.runOnlyPendingTimers();
.then(() => {
const $dropdownItemsBeforeRemove = $row.find( const $dropdownItemsBeforeRemove = $row.find(
'.js-variable-environment-dropdown-wrapper .dropdown-content a', '.js-variable-environment-dropdown-wrapper .dropdown-content a',
); );
expect($dropdownItemsBeforeRemove.length).toBe(2); expect($dropdownItemsBeforeRemove).toHaveLength(2);
expect($dropdownItemsBeforeRemove[0].textContent.trim()).toBe('someenv'); expect($dropdownItemsBeforeRemove[0].textContent.trim()).toBe('someenv');
expect($dropdownItemsBeforeRemove[1].textContent.trim()).toBe('* (All environments)'); expect($dropdownItemsBeforeRemove[1].textContent.trim()).toBe('* (All environments)');
$wrapper.find('.js-row-remove-button').trigger('click'); $wrapper.find('.js-row-remove-button').trigger('click');
expect($wrapper.find('.js-row').length).toBe(0); expect($wrapper.find('.js-row')).toHaveLength(0);
})
.then(() => { jest.runOnlyPendingTimers();
const $dropdownItemsAfterRemove = $row.find( const $dropdownItemsAfterRemove = $row.find(
'.js-variable-environment-dropdown-wrapper .dropdown-content a', '.js-variable-environment-dropdown-wrapper .dropdown-content a',
); );
expect($dropdownItemsAfterRemove.length).toBe(1); expect($dropdownItemsAfterRemove).toHaveLength(1);
expect($dropdownItemsAfterRemove[0].textContent.trim()).toBe('* (All environments)'); expect($dropdownItemsAfterRemove[0].textContent.trim()).toBe('* (All environments)');
})
.then(done)
.catch(done.fail);
}); });
}); });
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment