From bd5628dde140154c3e3c29ac456bdd4d220a01df Mon Sep 17 00:00:00 2001 From: Sarah German Date: Mon, 8 May 2023 14:10:14 -0500 Subject: Update links to older major releases --- .../default/components/versions_menu_spec.js | 68 ++++++++++++---------- 1 file changed, 38 insertions(+), 30 deletions(-) (limited to 'spec/frontend') diff --git a/spec/frontend/default/components/versions_menu_spec.js b/spec/frontend/default/components/versions_menu_spec.js index 7de730d2..d1b940b8 100644 --- a/spec/frontend/default/components/versions_menu_spec.js +++ b/spec/frontend/default/components/versions_menu_spec.js @@ -2,7 +2,7 @@ * @jest-environment jsdom */ -import { mount } from '@vue/test-utils'; +import { shallowMount } from '@vue/test-utils'; import flushPromises from 'flush-promises'; import VersionsMenu from '../../../../content/frontend/default/components/versions_menu.vue'; import { getVersions } from '../../../../content/frontend/services/fetch_versions'; @@ -11,46 +11,50 @@ import { setWindowPath, setVersionMetatag } from './helpers/versions_menu_helper jest.mock('../../../../content/frontend/services/fetch_versions'); -beforeEach(() => { - jest.clearAllMocks(); - getVersions.mockResolvedValueOnce(mockVersions); -}); -afterEach(() => { - document.querySelector('meta[name="gitlab-docs-version"]').remove(); -}); - describe('component: Versions menu', () => { + const archivesUrl = 'https://archives.docs.gitlab.com'; + + beforeEach(() => { + jest.clearAllMocks(); + getVersions.mockResolvedValueOnce(mockVersions); + }); + afterEach(() => { + document.querySelector('meta[name="gitlab-docs-version"]').remove(); + }); + it('Fetches versions.json and displays current version', async () => { - const wrapper = mount(VersionsMenu); + const wrapper = shallowMount(VersionsMenu); setVersionMetatag(mockVersions.next); await flushPromises(); expect(getVersions).toHaveBeenCalledTimes(1); - const nextVersion = wrapper.find('[data-testid="next-version"]').element.textContent; + const nextVersion = wrapper.find('[data-testid="next-version"]').text(); expect(nextVersion).toEqual(mockVersions.next); }); it('Generates correct menu links from the homepage', async () => { setWindowPath('/'); setVersionMetatag(mockVersions.next); - const wrapper = mount(VersionsMenu); + const wrapper = shallowMount(VersionsMenu); + await wrapper.setData({ activeVersion: mockVersions.next, versions: mockVersions }); expect(wrapper.vm.getVersionPath('')).toBe('/'); expect(wrapper.vm.getVersionPath(mockVersions.current)).toBe(`/${mockVersions.current}/`); - Object.values([...mockVersions.last_major, ...mockVersions.last_minor]).forEach( - function testLink(v) { - expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/`); - }, - ); + mockVersions.last_minor.forEach((v) => { + expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/`); + }); + mockVersions.last_major.forEach((v) => { + expect(wrapper.vm.getVersionPath(v)).toBe(`${archivesUrl}/${v}/`); + }); }); it('Generates correct menu links from an interior page', async () => { setWindowPath('/ee/user/project/issue_board.html'); setVersionMetatag(mockVersions.next); - const wrapper = mount(VersionsMenu); + const wrapper = shallowMount(VersionsMenu); await wrapper.setData({ activeVersion: mockVersions.next, versions: mockVersions }); expect(wrapper.vm.getVersionPath('')).toBe('/ee/user/project/issue_board.html'); @@ -58,33 +62,37 @@ describe('component: Versions menu', () => { `/${mockVersions.current}/ee/user/project/issue_board.html`, ); - Object.values([...mockVersions.last_major, ...mockVersions.last_minor]).forEach( - function testLink(v) { - expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/ee/user/project/issue_board.html`); - }, - ); + mockVersions.last_minor.forEach((v) => { + expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/ee/user/project/issue_board.html`); + }); + mockVersions.last_major.forEach((v) => { + expect(wrapper.vm.getVersionPath(v)).toBe( + `${archivesUrl}/${v}/ee/user/project/issue_board.html`, + ); + }); }); it('Generates correct menu links from an older version', async () => { setWindowPath('/14.10/runner'); setVersionMetatag('14.10'); - const wrapper = mount(VersionsMenu); + const wrapper = shallowMount(VersionsMenu); await wrapper.setData({ versions: mockVersions }); expect(wrapper.vm.getVersionPath('')).toBe('/runner'); expect(wrapper.vm.getVersionPath(mockVersions.current)).toBe(`/${mockVersions.current}/runner`); - Object.values([...mockVersions.last_major, ...mockVersions.last_minor]).forEach( - function testLink(v) { - expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/runner`); - }, - ); + mockVersions.last_minor.forEach((v) => { + expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/runner`); + }); + mockVersions.last_major.forEach((v) => { + expect(wrapper.vm.getVersionPath(v)).toBe(`${archivesUrl}/${v}/runner`); + }); }); it('Shows simplified menu on non-production sites', async () => { setVersionMetatag('14.10'); - const wrapper = mount(VersionsMenu); + const wrapper = shallowMount(VersionsMenu); await wrapper.setData({ versions: {} }); expect(wrapper.find('[data-testid="versions-menu"] a:nth-child(2)').exists()).toBe(false); }); -- cgit v1.2.3