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
diff options
context:
space:
mode:
authorSarah German <sgerman@gitlab.com>2023-03-16 22:59:18 +0300
committerSarah German <sgerman@gitlab.com>2023-03-16 22:59:18 +0300
commit3cf822db4eb21456a097885a836e262b4d4fd01e (patch)
treefc6ad5de1d3a3c34d5a59f402dc3a3b833155194
parent603e7f20991452db53a0180116823695d909c9d1 (diff)
Add a test for versions menu items for non-prod envsversioning-fixes
-rw-r--r--spec/frontend/default/components/helpers/versions_menu_helper.js15
-rw-r--r--spec/frontend/default/components/versions_menu_spec.js14
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);