diff options
Diffstat (limited to 'spec/frontend/clusters_list/components/install_agent_modal_spec.js')
-rw-r--r-- | spec/frontend/clusters_list/components/install_agent_modal_spec.js | 75 |
1 files changed, 18 insertions, 57 deletions
diff --git a/spec/frontend/clusters_list/components/install_agent_modal_spec.js b/spec/frontend/clusters_list/components/install_agent_modal_spec.js index 37432ed0193..38f653509a8 100644 --- a/spec/frontend/clusters_list/components/install_agent_modal_spec.js +++ b/spec/frontend/clusters_list/components/install_agent_modal_spec.js @@ -6,6 +6,7 @@ import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import { mockTracking } from 'helpers/tracking_helper'; import AvailableAgentsDropdown from '~/clusters_list/components/available_agents_dropdown.vue'; import InstallAgentModal from '~/clusters_list/components/install_agent_modal.vue'; +import AgentToken from '~/clusters_list/components/agent_token.vue'; import { I18N_AGENT_MODAL, MAX_LIST_COUNT, @@ -21,7 +22,6 @@ import createAgentMutation from '~/clusters_list/graphql/mutations/create_agent. import createAgentTokenMutation from '~/clusters_list/graphql/mutations/create_agent_token.mutation.graphql'; import createMockApollo from 'helpers/mock_apollo_helper'; import waitForPromises from 'helpers/wait_for_promises'; -import CodeBlock from '~/vue_shared/components/code_block.vue'; import { createAgentResponse, createAgentErrorResponse, @@ -39,6 +39,7 @@ const kasAddress = 'kas.example.com'; const emptyStateImage = 'path/to/image'; const defaultBranchName = 'default'; const maxAgents = MAX_LIST_COUNT; +const i18n = I18N_AGENT_MODAL; describe('InstallAgentModal', () => { let wrapper; @@ -60,6 +61,7 @@ describe('InstallAgentModal', () => { const findModal = () => wrapper.findComponent(ModalStub); const findAgentDropdown = () => findModal().findComponent(AvailableAgentsDropdown); const findAlert = () => findModal().findComponent(GlAlert); + const findAgentInstructions = () => findModal().findComponent(AgentToken); const findButtonByVariant = (variant) => findModal() .findAll(GlButton) @@ -67,7 +69,7 @@ describe('InstallAgentModal', () => { const findActionButton = () => findButtonByVariant('confirm'); const findCancelButton = () => findButtonByVariant('default'); const findPrimaryButton = () => wrapper.findByTestId('agent-primary-button'); - const findImage = () => wrapper.findByRole('img', { alt: I18N_AGENT_MODAL.empty_state.altText }); + const findImage = () => wrapper.findByRole('img', { alt: i18n.altText }); const expectDisabledAttribute = (element, disabled) => { if (disabled) { @@ -140,16 +142,16 @@ describe('InstallAgentModal', () => { apolloProvider = null; }); - describe('when agent configurations are present', () => { - const i18n = I18N_AGENT_MODAL.agent_registration; - + describe('when KAS is enabled', () => { describe('initial state', () => { it('renders the dropdown for available agents', () => { expect(findAgentDropdown().isVisible()).toBe(true); + }); + + it("doesn't render agent installation instructions", () => { expect(findModal().text()).not.toContain(i18n.basicInstallTitle); expect(findModal().findComponent(GlFormInputGroup).exists()).toBe(false); expect(findModal().findComponent(GlAlert).exists()).toBe(false); - expect(findModal().findComponent(CodeBlock).exists()).toBe(false); }); it('renders a cancel button', () => { @@ -220,19 +222,7 @@ describe('InstallAgentModal', () => { }); it('shows agent instructions', () => { - const modalText = findModal().text(); - expect(modalText).toContain(i18n.basicInstallTitle); - expect(modalText).toContain(i18n.basicInstallBody); - - const token = findModal().findComponent(GlFormInputGroup); - expect(token.props('value')).toBe('mock-agent-token'); - - const alert = findModal().findComponent(GlAlert); - expect(alert.props('title')).toBe(i18n.tokenSingleUseWarningTitle); - - const code = findModal().findComponent(CodeBlock).props('code'); - expect(code).toContain('--agent-token=mock-agent-token'); - expect(code).toContain('--kas-address=kas.example.com'); + expect(findAgentInstructions().exists()).toBe(true); }); describe('error creating agent', () => { @@ -272,44 +262,7 @@ describe('InstallAgentModal', () => { }); }); - describe('when there are no agent configurations present', () => { - const i18n = I18N_AGENT_MODAL.empty_state; - const apolloQueryEmptyResponse = { - data: { - project: { - clusterAgents: { nodes: [] }, - agentConfigurations: { nodes: [] }, - }, - }, - }; - - beforeEach(() => { - apolloProvider = createMockApollo([ - [getAgentConfigurations, jest.fn().mockResolvedValue(apolloQueryEmptyResponse)], - ]); - createWrapper(); - }); - - it('renders empty state image', () => { - expect(findImage().attributes('src')).toBe(emptyStateImage); - }); - - it('renders a primary button', () => { - expect(findPrimaryButton().isVisible()).toBe(true); - expect(findPrimaryButton().text()).toBe(i18n.primaryButton); - }); - - it('sends the event with the modalType', () => { - findModal().vm.$emit('show'); - expect(trackingSpy).toHaveBeenCalledWith(undefined, EVENT_ACTIONS_OPEN, { - label: EVENT_LABEL_MODAL, - property: MODAL_TYPE_EMPTY, - }); - }); - }); - describe('when KAS is disabled', () => { - const i18n = I18N_AGENT_MODAL.empty_state; beforeEach(async () => { apolloProvider = createMockApollo([ [getAgentConfigurations, jest.fn().mockResolvedValue(kasDisabledErrorResponse)], @@ -331,11 +284,19 @@ describe('InstallAgentModal', () => { it('renders a cancel button', () => { expect(findCancelButton().isVisible()).toBe(true); - expect(findCancelButton().text()).toBe(i18n.done); + expect(findCancelButton().text()).toBe(i18n.close); }); it("doesn't render a secondary button", () => { expect(findPrimaryButton().exists()).toBe(false); }); + + it('sends the event with the modalType', () => { + findModal().vm.$emit('show'); + expect(trackingSpy).toHaveBeenCalledWith(undefined, EVENT_ACTIONS_OPEN, { + label: EVENT_LABEL_MODAL, + property: MODAL_TYPE_EMPTY, + }); + }); }); }); |