diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-24 15:13:01 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-24 15:13:01 +0300 |
commit | 552e85a58645e5321b33dacc8d410fa88fb75a85 (patch) | |
tree | 1a75b860851c45f970cf13a35001ce9caded3fa5 /spec/frontend/projects | |
parent | b0d6a7fbff3f97a4b2b56b672902a21e0fc29195 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/projects')
-rw-r--r-- | spec/frontend/projects/compare/components/revision_dropdown_legacy_spec.js | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/spec/frontend/projects/compare/components/revision_dropdown_legacy_spec.js b/spec/frontend/projects/compare/components/revision_dropdown_legacy_spec.js index 53763bd7d8f..2304e936dc6 100644 --- a/spec/frontend/projects/compare/components/revision_dropdown_legacy_spec.js +++ b/spec/frontend/projects/compare/components/revision_dropdown_legacy_spec.js @@ -1,7 +1,7 @@ import { GlDropdown, GlDropdownItem } from '@gitlab/ui'; import { shallowMount } from '@vue/test-utils'; import AxiosMockAdapter from 'axios-mock-adapter'; -import { nextTick } from 'vue'; +import waitForPromises from 'helpers/wait_for_promises'; import { createAlert } from '~/flash'; import axios from '~/lib/utils/axios_utils'; import { HTTP_STATUS_NOT_FOUND, HTTP_STATUS_OK } from '~/lib/utils/http_status'; @@ -40,6 +40,10 @@ describe('RevisionDropdown component', () => { }); const findGlDropdown = () => wrapper.findComponent(GlDropdown); + const findBranchesDropdownItem = () => + wrapper.findAllComponents('[data-testid="branches-dropdown-item"]'); + const findTagsDropdownItem = () => + wrapper.findAllComponents('[data-testid="tags-dropdown-item"]'); it('sets hidden input', () => { expect(wrapper.find('input[type="hidden"]').attributes('value')).toBe( @@ -58,10 +62,21 @@ describe('RevisionDropdown component', () => { createComponent(); - await axios.waitForAll(); + expect(findBranchesDropdownItem()).toHaveLength(0); + expect(findTagsDropdownItem()).toHaveLength(0); - expect(wrapper.vm.branches).toEqual(Branches); - expect(wrapper.vm.tags).toEqual(Tags); + await waitForPromises(); + + Branches.forEach((branch, index) => { + expect(findBranchesDropdownItem().at(index).text()).toBe(branch); + }); + + Tags.forEach((tag, index) => { + expect(findTagsDropdownItem().at(index).text()).toBe(tag); + }); + + expect(findBranchesDropdownItem()).toHaveLength(Branches.length); + expect(findTagsDropdownItem()).toHaveLength(Tags.length); }); it('sets branches and tags to be an empty array when no tags or branches are given', async () => { @@ -70,16 +85,17 @@ describe('RevisionDropdown component', () => { Tags: undefined, }); - await axios.waitForAll(); + await waitForPromises(); - expect(wrapper.vm.branches).toEqual([]); - expect(wrapper.vm.tags).toEqual([]); + expect(findBranchesDropdownItem()).toHaveLength(0); + expect(findTagsDropdownItem()).toHaveLength(0); }); it('shows flash message on error', async () => { axiosMock.onGet('some/invalid/path').replyOnce(HTTP_STATUS_NOT_FOUND); - await wrapper.vm.fetchBranchesAndTags(); + await waitForPromises(); + expect(createAlert).toHaveBeenCalled(); }); @@ -102,17 +118,19 @@ describe('RevisionDropdown component', () => { it('emits a "selectRevision" event when a revision is selected', async () => { const findGlDropdownItems = () => wrapper.findAllComponents(GlDropdownItem); const findFirstGlDropdownItem = () => findGlDropdownItems().at(0); + const branchName = 'some-branch'; - // setData usage is discouraged. See https://gitlab.com/groups/gitlab-org/-/epics/7330 for details - // eslint-disable-next-line no-restricted-syntax - wrapper.setData({ branches: ['some-branch'] }); + axiosMock.onGet(defaultProps.refsProjectPath).replyOnce(HTTP_STATUS_OK, { + Branches: [branchName], + }); - await nextTick(); + createComponent(); + await waitForPromises(); findFirstGlDropdownItem().vm.$emit('click'); expect(wrapper.emitted()).toEqual({ - selectRevision: [[{ direction: 'from', revision: 'some-branch' }]], + selectRevision: [[{ direction: 'from', revision: branchName }]], }); }); }); |