diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-30 18:08:57 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-30 18:08:57 +0000 |
commit | d8121cb00b8bbd281d7362902590b110639bdeba (patch) | |
tree | 0a0f71b247b232773a46732d9f74aa3cfed0ef1a /spec/frontend/registry | |
parent | 536aa3a1f4b96abc4ca34489bf2cbe503afcded7 (diff) | |
download | gitlab-ce-d8121cb00b8bbd281d7362902590b110639bdeba.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/registry')
3 files changed, 70 insertions, 1 deletions
diff --git a/spec/frontend/registry/settings/components/__snapshots__/settings_form_spec.js.snap b/spec/frontend/registry/settings/components/__snapshots__/settings_form_spec.js.snap index 8d4e1243418..06f73c8f456 100644 --- a/spec/frontend/registry/settings/components/__snapshots__/settings_form_spec.js.snap +++ b/spec/frontend/registry/settings/components/__snapshots__/settings_form_spec.js.snap @@ -159,6 +159,7 @@ exports[`Settings Form renders 1`] = ` > <glbutton-stub class="mr-2 d-block" + disabled="true" size="md" type="reset" variant="secondary" diff --git a/spec/frontend/registry/settings/components/settings_form_spec.js b/spec/frontend/registry/settings/components/settings_form_spec.js index 5b81d034e14..89dd161ec3e 100644 --- a/spec/frontend/registry/settings/components/settings_form_spec.js +++ b/spec/frontend/registry/settings/components/settings_form_spec.js @@ -124,11 +124,35 @@ describe('Settings Form', () => { form = findForm(); }); - describe('form cancel event', () => { + describe('cancel button', () => { it('has type reset', () => { expect(findCancelButton().attributes('type')).toBe('reset'); }); + it('is disabled the form was not changed from his original value', () => { + store.dispatch('receiveSettingsSuccess', { foo: 'bar' }); + return wrapper.vm.$nextTick().then(() => { + expect(findCancelButton().attributes('disabled')).toBe('true'); + }); + }); + + it('is disabled when the form data is loading', () => { + store.dispatch('toggleLoading'); + return wrapper.vm.$nextTick().then(() => { + expect(findCancelButton().attributes('disabled')).toBe('true'); + }); + }); + + it('is enabled when the user changed something in the form and the data is not being loaded', () => { + store.dispatch('receiveSettingsSuccess', { foo: 'bar' }); + store.dispatch('updateSettings', { foo: 'baz' }); + return wrapper.vm.$nextTick().then(() => { + expect(findCancelButton().attributes('disabled')).toBe(undefined); + }); + }); + }); + + describe('form cancel event', () => { it('calls the appropriate function', () => { dispatchSpy.mockReturnValue(); form.trigger('reset'); diff --git a/spec/frontend/registry/settings/store/getters_spec.js b/spec/frontend/registry/settings/store/getters_spec.js new file mode 100644 index 00000000000..d9ee53766d6 --- /dev/null +++ b/spec/frontend/registry/settings/store/getters_spec.js @@ -0,0 +1,44 @@ +import * as getters from '~/registry/settings/store/getters'; +import * as utils from '~/registry/settings/utils'; +import { formOptions } from '../mock_data'; + +describe('Getters registry settings store', () => { + const settings = { + cadence: 'foo', + keep_n: 'bar', + older_than: 'baz', + }; + + describe.each` + getter | variable | formOption + ${'getCadence'} | ${'cadence'} | ${'cadence'} + ${'getKeepN'} | ${'keep_n'} | ${'keepN'} + ${'getOlderThan'} | ${'older_than'} | ${'olderThan'} + `('Options getter', ({ getter, variable, formOption }) => { + beforeEach(() => { + utils.findDefaultOption = jest.fn(); + }); + + it(`${getter} returns ${variable} when ${variable} exists in settings`, () => { + expect(getters[getter]({ settings })).toBe(settings[variable]); + }); + + it(`${getter} calls findDefaultOption when ${variable} does not exists in settings`, () => { + getters[getter]({ settings: {}, formOptions }); + expect(utils.findDefaultOption).toHaveBeenCalledWith(formOptions[formOption]); + }); + }); + + describe('getIsDisabled', () => { + it('returns false when original is equal to settings', () => { + const same = { foo: 'bar' }; + expect(getters.getIsEdited({ original: same, settings: same })).toBe(false); + }); + + it('returns true when original is different from settings', () => { + expect(getters.getIsEdited({ original: { foo: 'bar' }, settings: { foo: 'baz' } })).toBe( + true, + ); + }); + }); +}); |