diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-07 21:10:22 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-08-07 21:10:22 +0300 |
commit | 4d18bba787186aeb5bf8a0463fd145fae48b3234 (patch) | |
tree | daa26f7daa8bf303ef0cfcc1bfe68d13eae74537 /spec/frontend/group_settings | |
parent | 33c86930e0a657e1519082a9a00faae260a44882 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/group_settings')
-rw-r--r-- | spec/frontend/group_settings/components/shared_runners_form_spec.js | 51 |
1 files changed, 37 insertions, 14 deletions
diff --git a/spec/frontend/group_settings/components/shared_runners_form_spec.js b/spec/frontend/group_settings/components/shared_runners_form_spec.js index 5daa21fd618..b39b9a62661 100644 --- a/spec/frontend/group_settings/components/shared_runners_form_spec.js +++ b/spec/frontend/group_settings/components/shared_runners_form_spec.js @@ -1,5 +1,6 @@ -import { GlAlert } from '@gitlab/ui'; +import { GlAlert, GlSprintf, GlLink } from '@gitlab/ui'; import { nextTick } from 'vue'; +import { s__, sprintf } from '~/locale'; import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import waitForPromises from 'helpers/wait_for_promises'; import { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal'; @@ -17,6 +18,9 @@ const RUNNER_ENABLED_VALUE = 'enabled'; const RUNNER_DISABLED_VALUE = 'disabled_and_unoverridable'; const RUNNER_ALLOW_OVERRIDE_VALUE = 'disabled_and_overridable'; +const mockParentName = 'My group'; +const mockParentSettingsPath = '/groups/my-group/-/settings/ci_cd'; + describe('group_settings/components/shared_runners_form', () => { let wrapper; @@ -27,20 +31,19 @@ describe('group_settings/components/shared_runners_form', () => { groupName: GROUP_NAME, groupIsEmpty: false, sharedRunnersSetting: RUNNER_ENABLED_VALUE, - parentSharedRunnersSetting: null, + runnerEnabledValue: RUNNER_ENABLED_VALUE, runnerDisabledValue: RUNNER_DISABLED_VALUE, runnerAllowOverrideValue: RUNNER_ALLOW_OVERRIDE_VALUE, ...provide, }, + stubs: { + GlSprintf, + }, }); }; - const findAlert = (variant) => - wrapper - .findAllComponents(GlAlert) - .filter((w) => w.props('variant') === variant) - .at(0); + const findAlert = () => wrapper.findComponent(GlAlert); const findSharedRunnersToggle = () => wrapper.findByTestId('shared-runners-toggle'); const findOverrideToggle = () => wrapper.findByTestId('override-runners-toggle'); const getSharedRunnersSetting = () => { @@ -86,17 +89,37 @@ describe('group_settings/components/shared_runners_form', () => { }); }); - describe('When parent group disabled shared runners', () => { - it('toggles are disabled', () => { + describe.each` + provide | case | isParentLinkExpected + ${{ parentName: mockParentName, parentSettingsPath: mockParentSettingsPath }} | ${'can configure parent'} | ${true} + ${{}} | ${'cannot configure parent'} | ${false} + `('When parent group disabled shared runners and $case', ({ provide, isParentLinkExpected }) => { + beforeEach(() => { createComponent({ sharedRunnersSetting: RUNNER_DISABLED_VALUE, parentSharedRunnersSetting: RUNNER_DISABLED_VALUE, + ...provide, }); - - expect(findSharedRunnersToggle().props('disabled')).toBe(true); - expect(findOverrideToggle().props('disabled')).toBe(true); - expect(findAlert('warning').exists()).toBe(true); }); + + it.each([findSharedRunnersToggle, findOverrideToggle])( + 'toggle %# is disabled', + (findToggle) => { + expect(findToggle().props('disabled')).toBe(true); + expect(findToggle().text()).toContain(s__('Runners|Shared runners are disabled.')); + + if (isParentLinkExpected) { + expect(findToggle().text()).toContain( + sprintf(s__('Runners|Go to %{groupLink} to enable them.'), { + groupLink: mockParentName, + }), + ); + const link = findToggle().findComponent(GlLink); + expect(link.text()).toBe(mockParentName); + expect(link.attributes('href')).toBe(mockParentSettingsPath); + } + }, + ); }); describe('loading state', () => { @@ -240,7 +263,7 @@ describe('group_settings/components/shared_runners_form', () => { }); it('error should be shown', () => { - expect(findAlert('danger').text()).toBe(message); + expect(findAlert().text()).toBe(message); }); }); }); |