diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-11-03 21:11:17 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-11-03 21:11:17 +0300 |
commit | 44434461b3c58336624125b5ab002e7200e4a208 (patch) | |
tree | cef2ea602e94abd9c1ef6ee77b6988c4c85475b7 /spec/frontend/vue_shared | |
parent | e6fa9529b4922a4c552e8908a2929ff995e8b53d (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/vue_shared')
-rw-r--r-- | spec/frontend/vue_shared/components/gitlab_version_check_spec.js | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/spec/frontend/vue_shared/components/gitlab_version_check_spec.js b/spec/frontend/vue_shared/components/gitlab_version_check_spec.js deleted file mode 100644 index c3703d50773..00000000000 --- a/spec/frontend/vue_shared/components/gitlab_version_check_spec.js +++ /dev/null @@ -1,169 +0,0 @@ -import { GlBadge } from '@gitlab/ui'; -import MockAdapter from 'axios-mock-adapter'; -import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; -import waitForPromises from 'helpers/wait_for_promises'; -import { mockTracking } from 'helpers/tracking_helper'; -import { helpPagePath } from '~/helpers/help_page_helper'; -import axios from '~/lib/utils/axios_utils'; -import GitlabVersionCheck from '~/vue_shared/components/gitlab_version_check.vue'; - -describe('GitlabVersionCheck', () => { - let wrapper; - let mock; - - const UPGRADE_DOCS_URL = helpPagePath('update/index'); - - const defaultResponse = { - code: 200, - res: { severity: 'success' }, - }; - - const createComponent = (mockResponse, propsData = {}) => { - const response = { - ...defaultResponse, - ...mockResponse, - }; - - mock = new MockAdapter(axios); - mock.onGet().replyOnce(response.code, response.res); - - wrapper = shallowMountExtended(GitlabVersionCheck, { - propsData, - }); - }; - - const dummyGon = { - relative_url_root: '/', - }; - - let originalGon; - - afterEach(() => { - wrapper.destroy(); - mock.restore(); - window.gon = originalGon; - }); - - const findGlBadgeClickWrapper = () => wrapper.findByTestId('badge-click-wrapper'); - const findGlBadge = () => wrapper.findComponent(GlBadge); - - describe.each` - root | description - ${'/'} | ${'not used (uses its own (sub)domain)'} - ${'/gitlab'} | ${'custom path'} - ${'/service/gitlab'} | ${'custom path with 2 depth'} - `('path for version_check.json', ({ root, description }) => { - describe(`when relative url is ${description}: ${root}`, () => { - beforeEach(async () => { - originalGon = window.gon; - window.gon = { ...dummyGon }; - window.gon.relative_url_root = root; - createComponent(defaultResponse); - await waitForPromises(); // Ensure we wrap up the axios call - }); - - it('reflects the relative url setting', () => { - expect(mock.history.get.length).toBe(1); - - const pathRegex = new RegExp(`^${root}`); - expect(mock.history.get[0].url).toMatch(pathRegex); - }); - }); - }); - - describe('template', () => { - describe.each` - description | mockResponse | renders - ${'successful but null'} | ${{ code: 200, res: null }} | ${false} - ${'successful and valid'} | ${{ code: 200, res: { severity: 'success' } }} | ${true} - ${'an error'} | ${{ code: 500, res: null }} | ${false} - `('version_check.json response', ({ description, mockResponse, renders }) => { - describe(`is ${description}`, () => { - beforeEach(async () => { - createComponent(mockResponse); - await waitForPromises(); // Ensure we wrap up the axios call - }); - - it(`does${renders ? '' : ' not'} render Badge Click Wrapper and GlBadge`, () => { - expect(findGlBadgeClickWrapper().exists()).toBe(renders); - expect(findGlBadge().exists()).toBe(renders); - }); - }); - }); - - describe.each` - mockResponse | expectedUI - ${{ code: 200, res: { severity: 'success' } }} | ${{ title: 'Up to date', variant: 'success' }} - ${{ code: 200, res: { severity: 'warning' } }} | ${{ title: 'Update available', variant: 'warning' }} - ${{ code: 200, res: { severity: 'danger' } }} | ${{ title: 'Update ASAP', variant: 'danger' }} - `('badge ui', ({ mockResponse, expectedUI }) => { - describe(`when response is ${mockResponse.res.severity}`, () => { - let trackingSpy; - - beforeEach(async () => { - createComponent(mockResponse, { actionable: true }); - trackingSpy = mockTracking(undefined, wrapper.element, jest.spyOn); - await waitForPromises(); // Ensure we wrap up the axios call - }); - - it(`title is ${expectedUI.title}`, () => { - expect(findGlBadge().text()).toBe(expectedUI.title); - }); - - it(`variant is ${expectedUI.variant}`, () => { - expect(findGlBadge().attributes('variant')).toBe(expectedUI.variant); - }); - - it(`tracks rendered_version_badge with label ${expectedUI.title}`, () => { - expect(trackingSpy).toHaveBeenCalledWith(undefined, 'render', { - label: 'version_badge', - property: expectedUI.title, - }); - }); - - it(`link is ${UPGRADE_DOCS_URL}`, () => { - expect(findGlBadge().attributes('href')).toBe(UPGRADE_DOCS_URL); - }); - - it(`tracks click_version_badge with label ${expectedUI.title} when badge is clicked`, async () => { - await findGlBadgeClickWrapper().trigger('click'); - - expect(trackingSpy).toHaveBeenCalledWith(undefined, 'click_link', { - label: 'version_badge', - property: expectedUI.title, - }); - }); - }); - }); - - describe('when actionable is false', () => { - let trackingSpy; - - beforeEach(async () => { - createComponent(defaultResponse, { actionable: false }); - trackingSpy = mockTracking(undefined, wrapper.element, jest.spyOn); - await waitForPromises(); // Ensure we wrap up the axios call - }); - - it('tracks rendered_version_badge correctly', () => { - expect(trackingSpy).toHaveBeenCalledWith(undefined, 'render', { - label: 'version_badge', - property: 'Up to date', - }); - }); - - it('does not provide a link to GlBadge', () => { - expect(findGlBadge().attributes('href')).toBe(undefined); - }); - - it('does not track click_version_badge', async () => { - await findGlBadgeClickWrapper().trigger('click'); - - expect(trackingSpy).not.toHaveBeenCalledWith(undefined, 'click_link', { - label: 'version_badge', - property: 'Up to date', - }); - }); - }); - }); -}); |