diff options
author | Sarah German <sgerman@gitlab.com> | 2023-03-16 22:59:18 +0300 |
---|---|---|
committer | Sarah German <sgerman@gitlab.com> | 2023-03-16 22:59:18 +0300 |
commit | 3cf822db4eb21456a097885a836e262b4d4fd01e (patch) | |
tree | fc6ad5de1d3a3c34d5a59f402dc3a3b833155194 | |
parent | 603e7f20991452db53a0180116823695d909c9d1 (diff) |
Add a test for versions menu items for non-prod envsversioning-fixes
-rw-r--r-- | spec/frontend/default/components/helpers/versions_menu_helper.js | 15 | ||||
-rw-r--r-- | spec/frontend/default/components/versions_menu_spec.js | 14 |
2 files changed, 28 insertions, 1 deletions
diff --git a/spec/frontend/default/components/helpers/versions_menu_helper.js b/spec/frontend/default/components/helpers/versions_menu_helper.js index 5842880e..7100a5d1 100644 --- a/spec/frontend/default/components/helpers/versions_menu_helper.js +++ b/spec/frontend/default/components/helpers/versions_menu_helper.js @@ -14,6 +14,21 @@ export const setWindowPath = (pathname) => { }; /** + * Creates a mock browser window object with a given host. + * @param {String} host + */ +export const setWindowHost = (host) => { + const location = { + ...window.location, + host, + }; + Object.defineProperty(window, 'location', { + writable: true, + value: location, + }); +}; + +/** * Creates a mock gitlab-docs-version metatag. * @param {String} pathname */ diff --git a/spec/frontend/default/components/versions_menu_spec.js b/spec/frontend/default/components/versions_menu_spec.js index 7de730d2..7607d0b4 100644 --- a/spec/frontend/default/components/versions_menu_spec.js +++ b/spec/frontend/default/components/versions_menu_spec.js @@ -7,7 +7,7 @@ import flushPromises from 'flush-promises'; import VersionsMenu from '../../../../content/frontend/default/components/versions_menu.vue'; import { getVersions } from '../../../../content/frontend/services/fetch_versions'; import { mockVersions } from '../../__mocks__/versions_mock'; -import { setWindowPath, setVersionMetatag } from './helpers/versions_menu_helper'; +import { setWindowPath, setWindowHost, setVersionMetatag } from './helpers/versions_menu_helper'; jest.mock('../../../../content/frontend/services/fetch_versions'); @@ -21,6 +21,8 @@ afterEach(() => { describe('component: Versions menu', () => { it('Fetches versions.json and displays current version', async () => { + setWindowHost('docs.gitlab.com'); + const wrapper = mount(VersionsMenu); setVersionMetatag(mockVersions.next); await flushPromises(); @@ -31,6 +33,16 @@ describe('component: Versions menu', () => { expect(nextVersion).toEqual(mockVersions.next); }); + it('Does not show menu for non-production versions', async () => { + setWindowHost('archives.docs.gitlab.com'); + setVersionMetatag(mockVersions.last_minor[0]); + + expect(getVersions).toHaveBeenCalledTimes(0); + const wrapper = mount(VersionsMenu); + + expect(wrapper.find('[data-testid="next-version"]').exists()).toBe(false); + }); + it('Generates correct menu links from the homepage', async () => { setWindowPath('/'); setVersionMetatag(mockVersions.next); |