diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 04:45:44 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 04:45:44 +0300 |
commit | 85dc423f7090da0a52c73eb66faf22ddb20efff9 (patch) | |
tree | 9160f299afd8c80c038f08e1545be119f5e3f1e1 /spec/frontend/repository/components | |
parent | 15c2c8c66dbe422588e5411eee7e68f1fa440bb8 (diff) |
Add latest changes from gitlab-org/gitlab@13-4-stable-ee
Diffstat (limited to 'spec/frontend/repository/components')
3 files changed, 41 insertions, 73 deletions
diff --git a/spec/frontend/repository/components/table/index_spec.js b/spec/frontend/repository/components/table/index_spec.js index 10669330b61..1b8bbd5af6b 100644 --- a/spec/frontend/repository/components/table/index_spec.js +++ b/spec/frontend/repository/components/table/index_spec.js @@ -1,5 +1,5 @@ import { shallowMount } from '@vue/test-utils'; -import { GlSkeletonLoading } from '@gitlab/ui'; +import { GlDeprecatedSkeletonLoading as GlSkeletonLoading, GlButton } from '@gitlab/ui'; import Table from '~/repository/components/table/index.vue'; import TableRow from '~/repository/components/table/row.vue'; @@ -34,12 +34,13 @@ const MOCK_BLOBS = [ }, ]; -function factory({ path, isLoading = false, entries = {} }) { +function factory({ path, isLoading = false, hasMore = true, entries = {} }) { vm = shallowMount(Table, { propsData: { path, isLoading, entries, + hasMore, }, mocks: { $apollo, @@ -88,4 +89,27 @@ describe('Repository table component', () => { expect(rows.length).toEqual(3); expect(rows.at(2).attributes().mode).toEqual('120000'); }); + + describe('Show more button', () => { + const showMoreButton = () => vm.find(GlButton); + + it.each` + hasMore | expectButtonToExist + ${true} | ${true} + ${false} | ${false} + `('renders correctly', ({ hasMore, expectButtonToExist }) => { + factory({ path: '/', hasMore }); + expect(showMoreButton().exists()).toBe(expectButtonToExist); + }); + + it('when is clicked, emits showMore event', async () => { + factory({ path: '/' }); + + showMoreButton().vm.$emit('click'); + + await vm.vm.$nextTick(); + + expect(vm.emitted('showMore')).toHaveLength(1); + }); + }); }); diff --git a/spec/frontend/repository/components/tree_content_spec.js b/spec/frontend/repository/components/tree_content_spec.js index ea85cd34743..70dbfaea551 100644 --- a/spec/frontend/repository/components/tree_content_spec.js +++ b/spec/frontend/repository/components/tree_content_spec.js @@ -1,7 +1,7 @@ import { shallowMount } from '@vue/test-utils'; -import { GlButton } from '@gitlab/ui'; import TreeContent, { INITIAL_FETCH_COUNT } from '~/repository/components/tree_content.vue'; import FilePreview from '~/repository/components/preview/index.vue'; +import FileTable from '~/repository/components/table/index.vue'; let vm; let $apollo; @@ -82,41 +82,36 @@ describe('Repository table component', () => { }); }); - describe('Show more button', () => { - const showMoreButton = () => vm.find(GlButton); - + describe('FileTable showMore', () => { describe('when is present', () => { + const fileTable = () => vm.find(FileTable); + beforeEach(async () => { factory('/'); - - vm.setData({ fetchCounter: 10, clickedShowMore: false }); - - await vm.vm.$nextTick(); }); - it('is not rendered once it is clicked', async () => { - showMoreButton().vm.$emit('click'); + it('is changes hasShowMore to false when "showMore" event is emitted', async () => { + fileTable().vm.$emit('showMore'); + await vm.vm.$nextTick(); - expect(showMoreButton().exists()).toBe(false); + expect(vm.vm.hasShowMore).toBe(false); }); - it('is rendered', async () => { - expect(showMoreButton().exists()).toBe(true); - }); + it('changes clickedShowMore when "showMore" event is emitted', async () => { + fileTable().vm.$emit('showMore'); - it('changes clickedShowMore when show more button is clicked', async () => { - showMoreButton().vm.$emit('click'); + await vm.vm.$nextTick(); expect(vm.vm.clickedShowMore).toBe(true); }); - it('triggers fetchFiles when show more button is clicked', async () => { + it('triggers fetchFiles when "showMore" event is emitted', () => { jest.spyOn(vm.vm, 'fetchFiles'); - showMoreButton().vm.$emit('click'); + fileTable().vm.$emit('showMore'); - expect(vm.vm.fetchFiles).toBeCalled(); + expect(vm.vm.fetchFiles).toHaveBeenCalled(); }); }); @@ -127,7 +122,7 @@ describe('Repository table component', () => { await vm.vm.$nextTick(); - expect(showMoreButton().exists()).toBe(false); + expect(vm.vm.hasShowMore).toBe(false); }); it('has limit of 1000 files on initial load', () => { diff --git a/spec/frontend/repository/components/web_ide_link_spec.js b/spec/frontend/repository/components/web_ide_link_spec.js deleted file mode 100644 index 877756db364..00000000000 --- a/spec/frontend/repository/components/web_ide_link_spec.js +++ /dev/null @@ -1,51 +0,0 @@ -import { mount } from '@vue/test-utils'; -import WebIdeLink from '~/repository/components/web_ide_link.vue'; - -describe('Web IDE link component', () => { - let wrapper; - - function createComponent(props) { - wrapper = mount(WebIdeLink, { - propsData: { ...props }, - mocks: { - $route: { - params: {}, - }, - }, - }); - } - - afterEach(() => { - wrapper.destroy(); - }); - - it('renders link to the Web IDE for a project if only projectPath is given', () => { - createComponent({ projectPath: 'gitlab-org/gitlab', refSha: 'master' }); - - expect(wrapper.attributes('href')).toBe('/-/ide/project/gitlab-org/gitlab/edit/master/-/'); - expect(wrapper.text()).toBe('Web IDE'); - }); - - it('renders link to the Web IDE for a project even if both projectPath and forkPath are given', () => { - createComponent({ - projectPath: 'gitlab-org/gitlab', - refSha: 'master', - forkPath: 'my-namespace/gitlab', - }); - - expect(wrapper.attributes('href')).toBe('/-/ide/project/gitlab-org/gitlab/edit/master/-/'); - expect(wrapper.text()).toBe('Web IDE'); - }); - - it('renders link to the forked project if it exists and cannot write to the repo', () => { - createComponent({ - projectPath: 'gitlab-org/gitlab', - refSha: 'master', - forkPath: 'my-namespace/gitlab', - canPushCode: false, - }); - - expect(wrapper.attributes('href')).toBe('/-/ide/project/my-namespace/gitlab/edit/master/-/'); - expect(wrapper.text()).toBe('Edit fork in Web IDE'); - }); -}); |