diff options
author | Sarah German <sgerman@gitlab.com> | 2022-10-12 20:12:41 +0300 |
---|---|---|
committer | Achilleas Pipinellis <axil@gitlab.com> | 2022-10-12 20:12:41 +0300 |
commit | a409705ba7cd4077383ef8bb35cc1cd55b236deb (patch) | |
tree | 6124d9ae26a4b92d27d5217c295f4b7a3a50189e /spec | |
parent | 39551dd7e9886f728bbb1ab850573de38dd032e7 (diff) |
Refactor Archives page to use versions.json
Diffstat (limited to 'spec')
-rw-r--r-- | spec/frontend/__mocks__/versions_mock.js | 19 | ||||
-rw-r--r-- | spec/frontend/default/components/archives_page_spec.js | 38 | ||||
-rw-r--r-- | spec/frontend/default/components/versions_menu_spec.js | 7 |
3 files changed, 58 insertions, 6 deletions
diff --git a/spec/frontend/__mocks__/versions_mock.js b/spec/frontend/__mocks__/versions_mock.js new file mode 100644 index 00000000..f62b00c9 --- /dev/null +++ b/spec/frontend/__mocks__/versions_mock.js @@ -0,0 +1,19 @@ +export const mockVersions = { + next: '15.3', + current: '15.2', + last_minor: ['15.1', '15.0'], + last_major: ['14.10', '13.12'], +}; + +export const mockArchiveImages = [ + { + name: '14.9', + path: 'gitlab-org/gitlab-docs:14.9', + location: 'registry.gitlab.com/gitlab-org/gitlab-docs:14.9', + }, + { + name: '14.8', + path: 'gitlab-org/gitlab-docs:14.8', + location: 'registry.gitlab.com/gitlab-org/gitlab-docs:14.8', + }, +]; diff --git a/spec/frontend/default/components/archives_page_spec.js b/spec/frontend/default/components/archives_page_spec.js new file mode 100644 index 00000000..553ef7ba --- /dev/null +++ b/spec/frontend/default/components/archives_page_spec.js @@ -0,0 +1,38 @@ +/** + * @jest-environment jsdom + */ + +import { shallowMount } from '@vue/test-utils'; +import ArchivesPage from '../../../../content/frontend/default/components/archives_page.vue'; +import { getVersions } from '../../../../content/frontend/services/fetch_versions'; +import { getArchiveImages } from '../../../../content/frontend/services/fetch_archive_images'; +import { mockVersions, mockArchiveImages } from '../../__mocks__/versions_mock'; + +jest.mock('../../../../content/frontend/services/fetch_versions'); +jest.mock('../../../../content/frontend/services/fetch_archive_images'); + +beforeEach(() => { + jest.clearAllMocks(); + getVersions.mockResolvedValueOnce(mockVersions); + getArchiveImages.mockResolvedValueOnce(mockArchiveImages); +}); + +describe('content/frontend/default/components/archives_page.vue', () => { + it('Shows correct online versions', async () => { + const wrapper = shallowMount(ArchivesPage); + await wrapper.setData({ + onlineVersions: [...mockVersions.last_minor, ...mockVersions.last_major], + }); + + expect(wrapper.find('[data-testid="online-version-15.1"]').exists()).toBe(true); + expect(wrapper.find('[data-testid="online-version-15.3"]').exists()).toBe(false); + }); + + it('Shows correct offline versions', async () => { + const wrapper = shallowMount(ArchivesPage); + await wrapper.setData({ offlineVersions: mockArchiveImages }); + + expect(wrapper.find('[data-testid="offline-version-14.9"]').exists()).toBe(true); + expect(wrapper.find('[data-testid="online-version-15.3"]').exists()).toBe(false); + }); +}); diff --git a/spec/frontend/default/components/versions_menu_spec.js b/spec/frontend/default/components/versions_menu_spec.js index 01bb43e2..035c59fc 100644 --- a/spec/frontend/default/components/versions_menu_spec.js +++ b/spec/frontend/default/components/versions_menu_spec.js @@ -6,15 +6,10 @@ import { mount } 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'; +import { mockVersions } from '../../__mocks__/versions_mock'; import { setWindowPath } from './helpers/versions_menu_helper'; jest.mock('../../../../content/frontend/services/fetch_versions'); -const mockVersions = { - next: '15.3', - current: '15.2', - last_minor: ['15.1', '15.0'], - last_major: ['14.10', '13.12'], -}; beforeEach(() => { jest.clearAllMocks(); |