diff options
author | Sarah German <sgerman@gitlab.com> | 2023-10-26 10:49:43 +0300 |
---|---|---|
committer | David O'Regan <doregan@gitlab.com> | 2023-10-26 10:49:43 +0300 |
commit | 7173ed349261eb150e18a78c48e1b8ba5d815a73 (patch) | |
tree | b56a368181611c7f8902701b91e1788552f2e1b6 /spec | |
parent | b3613645990d34bda1b521c3136b5af74fca4b04 (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.js | 2 | ||||
-rw-r--r-- | spec/frontend/shared/components/docs_banner_spec.js | 5 | ||||
-rw-r--r-- | spec/lib/helpers/versions_spec.rb | 39 |
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 |