diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-26 00:07:36 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-26 00:07:36 +0300 |
commit | 23e3a19888835a5a7fc68a081ba1e050e9baf681 (patch) | |
tree | c56f8e9a080e876b55a6f0e987cebe599921f1af /spec/frontend/vue_shared/components/runner_instructions | |
parent | ff549ec680715e4ea1daf0cee457f29dfe3b6062 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/vue_shared/components/runner_instructions')
2 files changed, 29 insertions, 2 deletions
diff --git a/spec/frontend/vue_shared/components/runner_instructions/instructions/runner_aws_instructions_spec.js b/spec/frontend/vue_shared/components/runner_instructions/instructions/runner_aws_instructions_spec.js index 4d566dbec0c..6d8f895a185 100644 --- a/spec/frontend/vue_shared/components/runner_instructions/instructions/runner_aws_instructions_spec.js +++ b/spec/frontend/vue_shared/components/runner_instructions/instructions/runner_aws_instructions_spec.js @@ -16,14 +16,18 @@ import { AWS_TEMPLATES_BASE_URL, AWS_EASY_BUTTONS, } from '~/vue_shared/components/runner_instructions/constants'; -import RunnerAwsInstructions from '~/vue_shared/components/runner_instructions/instructions/runner_aws_instructions.vue'; import { __ } from '~/locale'; +import RunnerAwsInstructions from '~/vue_shared/components/runner_instructions/instructions/runner_aws_instructions.vue'; +import ModalCopyButton from '~/vue_shared/components/modal_copy_button.vue'; + jest.mock('~/lib/utils/url_utility', () => ({ ...jest.requireActual('~/lib/utils/url_utility'), visitUrl: jest.fn(), })); +const mockRegistrationToken = 'MY_TOKEN'; + describe('RunnerAwsInstructions', () => { let wrapper; @@ -31,6 +35,7 @@ describe('RunnerAwsInstructions', () => { const findEasyButtons = () => wrapper.findAllComponents(GlFormRadio); const findEasyButtonAt = (i) => findEasyButtons().at(i); const findLink = () => wrapper.findComponent(GlLink); + const findModalCopyButton = () => wrapper.findComponent(ModalCopyButton); const findOkButton = () => wrapper .findAllComponents(GlButton) @@ -38,8 +43,12 @@ describe('RunnerAwsInstructions', () => { .at(0); const findCloseButton = () => wrapper.findByText(__('Close')); - const createComponent = () => { + const createComponent = ({ props = {} } = {}) => { wrapper = shallowMountExtended(RunnerAwsInstructions, { + propsData: { + registrationToken: mockRegistrationToken, + ...props, + }, stubs: { GlSprintf, }, @@ -109,6 +118,22 @@ describe('RunnerAwsInstructions', () => { expect(findLink().attributes('href')).toBe(AWS_README_URL); }); + it('shows registration token and copy button', () => { + const token = wrapper.findByText(mockRegistrationToken); + + expect(token.exists()).toBe(true); + expect(token.element.tagName).toBe('PRE'); + + expect(findModalCopyButton().props('text')).toBe(mockRegistrationToken); + }); + + it('does not show registration token and copy button when token is not present', () => { + createComponent({ props: { registrationToken: null } }); + + expect(wrapper.find('pre').exists()).toBe(false); + expect(findModalCopyButton().exists()).toBe(false); + }); + it('triggers the modal to close', () => { findCloseButton().vm.$emit('click'); diff --git a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_modal_spec.js b/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_modal_spec.js index 19f2dd137ff..8f593b6aa1b 100644 --- a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_modal_spec.js +++ b/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_modal_spec.js @@ -11,6 +11,7 @@ import RunnerInstructionsModal from '~/vue_shared/components/runner_instructions import RunnerCliInstructions from '~/vue_shared/components/runner_instructions/instructions/runner_cli_instructions.vue'; import RunnerDockerInstructions from '~/vue_shared/components/runner_instructions/instructions/runner_docker_instructions.vue'; import RunnerKubernetesInstructions from '~/vue_shared/components/runner_instructions/instructions/runner_kubernetes_instructions.vue'; +import RunnerAwsInstructions from '~/vue_shared/components/runner_instructions/instructions/runner_aws_instructions.vue'; import { mockRunnerPlatforms } from './mock_data'; @@ -156,6 +157,7 @@ describe('RunnerInstructionsModal component', () => { platform | component ${'docker'} | ${RunnerDockerInstructions} ${'kubernetes'} | ${RunnerKubernetesInstructions} + ${'aws'} | ${RunnerAwsInstructions} `('with platform "$platform"', ({ platform, component }) => { beforeEach(async () => { createComponent({ props: { defaultPlatformName: platform } }); |