Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorSarah German <sgerman@gitlab.com>2023-05-08 22:10:14 +0300
committerSarah German <sgerman@gitlab.com>2023-05-08 22:10:14 +0300
commitbd5628dde140154c3e3c29ac456bdd4d220a01df (patch)
tree7460d4641e44a47bcb78690e59ae48240c5015e1 /spec
parent83c3a75d2e2cbb515ee03f941ee6156b8dd58887 (diff)
Update links to older major releases
Diffstat (limited to 'spec')
-rw-r--r--spec/frontend/default/components/versions_menu_spec.js68
1 files changed, 38 insertions, 30 deletions
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);
});