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-10-26 10:49:43 +0300
committerDavid O'Regan <doregan@gitlab.com>2023-10-26 10:49:43 +0300
commit7173ed349261eb150e18a78c48e1b8ba5d815a73 (patch)
treeb56a368181611c7f8902701b91e1788552f2e1b6 /spec
parentb3613645990d34bda1b521c3136b5af74fca4b04 (diff)
Move logic for archived version banner to the frontend
Diffstat (limited to 'spec')
-rw-r--r--spec/frontend/default/components/helpers/versions_helper.js (renamed from spec/frontend/default/components/helpers/versions_menu_helper.js)0
-rw-r--r--spec/frontend/default/components/versions_spec.js (renamed from spec/frontend/default/components/versions_menu_spec.js)45
-rw-r--r--spec/frontend/search/lunr_search_spec.js2
-rw-r--r--spec/frontend/shared/components/docs_banner_spec.js5
-rw-r--r--spec/lib/helpers/versions_spec.rb39
5 files changed, 37 insertions, 54 deletions
diff --git a/spec/frontend/default/components/helpers/versions_menu_helper.js b/spec/frontend/default/components/helpers/versions_helper.js
index 5842880e..5842880e 100644
--- a/spec/frontend/default/components/helpers/versions_menu_helper.js
+++ b/spec/frontend/default/components/helpers/versions_helper.js
diff --git a/spec/frontend/default/components/versions_menu_spec.js b/spec/frontend/default/components/versions_spec.js
index 84a2e407..6e523263 100644
--- a/spec/frontend/default/components/versions_menu_spec.js
+++ b/spec/frontend/default/components/versions_spec.js
@@ -5,22 +5,17 @@
import { shallowMount } from '@vue/test-utils';
import flushPromises from 'flush-promises';
import VersionsMenu from '../../../../content/frontend/default/components/versions_menu.vue';
-import {
- getVersions,
- getArchivesVersions,
-} from '../../../../content/frontend/services/fetch_versions';
+import * as fetchVersions from '../../../../content/frontend/services/fetch_versions';
import { mockVersions, mockArchiveVersions } from '../../__mocks__/versions_mock';
-import { setWindowPath, setVersionMetatag } from './helpers/versions_menu_helper';
-
-jest.mock('../../../../content/frontend/services/fetch_versions');
+import { setWindowPath, setVersionMetatag } from './helpers/versions_helper';
describe('component: Versions menu', () => {
const archivesUrl = 'https://archives.docs.gitlab.com';
beforeEach(() => {
jest.clearAllMocks();
- getVersions.mockResolvedValueOnce(mockVersions);
- getArchivesVersions.mockResolvedValueOnce(mockArchiveVersions);
+ jest.spyOn(fetchVersions, 'getVersions').mockReturnValue(mockVersions);
+ jest.spyOn(fetchVersions, 'getArchivesVersions').mockReturnValue(mockArchiveVersions);
});
afterEach(() => {
document.querySelector('meta[name="gitlab-docs-version"]').remove();
@@ -31,8 +26,8 @@ describe('component: Versions menu', () => {
setVersionMetatag(mockVersions.next);
await flushPromises();
- expect(getVersions).toHaveBeenCalledTimes(1);
- expect(getArchivesVersions).toHaveBeenCalledTimes(1);
+ expect(fetchVersions.getVersions).toHaveBeenCalledTimes(1);
+ expect(fetchVersions.getArchivesVersions).toHaveBeenCalledTimes(1);
const nextVersion = wrapper.find('[data-testid="next-version"]').text();
expect(nextVersion).toEqual(mockVersions.next);
@@ -102,3 +97,31 @@ describe('component: Versions menu', () => {
expect(wrapper.find('[data-testid="versions-menu"] a:nth-child(2)').exists()).toBe(false);
});
});
+
+describe('isArchivedVersion', () => {
+ beforeEach(() => {
+ global.fetch = jest.fn(() =>
+ Promise.resolve({
+ json: () => Promise.resolve([mockVersions]),
+ }),
+ );
+ });
+
+ it('Returns the correct value for the pre-release version', async () => {
+ const result = await fetchVersions.isArchivedVersion('15.3');
+ expect(result).toBe(false);
+ });
+
+ it('Returns the correct value for the current stable version', async () => {
+ const result = await fetchVersions.isArchivedVersion('15.2');
+ expect(result).toBe(false);
+ });
+
+ it('Returns the correct values for previous minor and major releases', async () => {
+ const olderVersions = [...mockVersions.last_minor, mockVersions.last_minor];
+ olderVersions.forEach(async (v) => {
+ const result = await fetchVersions.isArchivedVersion(v);
+ expect(result).toBe(true);
+ });
+ });
+});
diff --git a/spec/frontend/search/lunr_search_spec.js b/spec/frontend/search/lunr_search_spec.js
index e45b2ee3..dc91c95c 100644
--- a/spec/frontend/search/lunr_search_spec.js
+++ b/spec/frontend/search/lunr_search_spec.js
@@ -4,7 +4,7 @@
import { shallowMount } from '@vue/test-utils';
import SearchPage from '../../../content/frontend/search/components/lunr_results.vue';
-import { setVersionMetatag } from '../default/components/helpers/versions_menu_helper';
+import { setVersionMetatag } from '../default/components/helpers/versions_helper';
describe('content/frontend/search/components/lunr_results.vue', () => {
const mockVersion = '16.2';
diff --git a/spec/frontend/shared/components/docs_banner_spec.js b/spec/frontend/shared/components/docs_banner_spec.js
index 3e352d08..ae0e0882 100644
--- a/spec/frontend/shared/components/docs_banner_spec.js
+++ b/spec/frontend/shared/components/docs_banner_spec.js
@@ -5,9 +5,8 @@
import { mount } from '@vue/test-utils';
import DocsBanner from '../../../../content/frontend/shared/components/docs_banner.vue';
-const propsData = { text: 'Some text', variant: 'info' };
-
-describe('component: Banner', () => {
+describe('component: Survey banner', () => {
+ const propsData = { text: 'Some text', variant: 'info' };
let wrapper;
beforeEach(() => {
diff --git a/spec/lib/helpers/versions_spec.rb b/spec/lib/helpers/versions_spec.rb
deleted file mode 100644
index 2c7e61cb..00000000
--- a/spec/lib/helpers/versions_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-require 'nanoc'
-require 'helpers/versions'
-
-RSpec.describe Nanoc::Helpers::VersionsDropdown do
- let(:mock_class) { Class.new { extend Nanoc::Helpers::VersionsDropdown } }
-
- subject { mock_class.latest? }
-
- describe '#latest?' do
- before do
- versions_mock = { next: "15.8", current: "15.7", last_minor: ["15.6", "15.5"], last_major: ["14.10", "13.12"] }
- allow(mock_class).to receive(:get_current_stable_version).and_return(versions_mock[:current])
- stub_const('ENV', ENV.to_hash.merge('CI_DEFAULT_BRANCH' => 'main'))
- end
-
- it 'returns correct value for pre-release version' do
- stub_const('ENV', ENV.to_hash.merge('CI_COMMIT_REF_NAME' => 'main'))
- expect(subject).to be(true)
- end
-
- it 'returns correct value for current stable version' do
- stub_const('ENV', ENV.to_hash.merge('CI_COMMIT_REF_NAME' => '15.7'))
- expect(subject).to be(true)
- end
-
- it 'returns correct value for last minor version' do
- stub_const('ENV', ENV.to_hash.merge('CI_COMMIT_REF_NAME' => '15.6'))
- expect(subject).to be(false)
- end
-
- it 'returns correct value for last major' do
- stub_const('ENV', ENV.to_hash.merge('CI_COMMIT_REF_NAME' => '14.10'))
- expect(subject).to be(false)
- end
- end
-end