summaryrefslogtreecommitdiff
path: root/spec/frontend/registry
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-30 18:08:57 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-30 18:08:57 +0000
commitd8121cb00b8bbd281d7362902590b110639bdeba (patch)
tree0a0f71b247b232773a46732d9f74aa3cfed0ef1a /spec/frontend/registry
parent536aa3a1f4b96abc4ca34489bf2cbe503afcded7 (diff)
downloadgitlab-ce-d8121cb00b8bbd281d7362902590b110639bdeba.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/registry')
-rw-r--r--spec/frontend/registry/settings/components/__snapshots__/settings_form_spec.js.snap1
-rw-r--r--spec/frontend/registry/settings/components/settings_form_spec.js26
-rw-r--r--spec/frontend/registry/settings/store/getters_spec.js44
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,
+ );
+ });
+ });
+});