diff options
Diffstat (limited to 'spec/frontend/groups/components/app_spec.js')
-rw-r--r-- | spec/frontend/groups/components/app_spec.js | 66 |
1 files changed, 31 insertions, 35 deletions
diff --git a/spec/frontend/groups/components/app_spec.js b/spec/frontend/groups/components/app_spec.js index bc8c6460cf4..848e50c86ba 100644 --- a/spec/frontend/groups/components/app_spec.js +++ b/spec/frontend/groups/components/app_spec.js @@ -1,7 +1,7 @@ import { GlModal, GlLoadingIcon } from '@gitlab/ui'; import { shallowMount } from '@vue/test-utils'; import AxiosMockAdapter from 'axios-mock-adapter'; -import Vue from 'vue'; +import Vue, { nextTick } from 'vue'; import waitForPromises from 'helpers/wait_for_promises'; import createFlash from '~/flash'; import appComponent from '~/groups/components/app.vue'; @@ -58,7 +58,7 @@ describe('AppComponent', () => { wrapper = null; }); - beforeEach(() => { + beforeEach(async () => { mock = new AxiosMockAdapter(axios); mock.onGet('/dashboard/groups.json').reply(200, mockGroups); Vue.component('GroupFolder', groupFolderComponent); @@ -66,7 +66,7 @@ describe('AppComponent', () => { createShallowComponent(); getGroupsSpy = jest.spyOn(vm.service, 'getGroups'); - return vm.$nextTick(); + await nextTick(); }); describe('computed', () => { @@ -280,6 +280,7 @@ describe('AppComponent', () => { expect(vm.targetParentGroup).toBe(null); vm.showLeaveGroupModal(group, mockParentGroupItem); + expect(vm.isModalVisible).toBe(true); expect(vm.targetGroup).not.toBe(null); expect(vm.targetParentGroup).not.toBe(null); }); @@ -290,6 +291,7 @@ describe('AppComponent', () => { expect(vm.groupLeaveConfirmationMessage).toBe(''); vm.showLeaveGroupModal(group, mockParentGroupItem); + expect(vm.isModalVisible).toBe(true); expect(vm.groupLeaveConfirmationMessage).toBe( `Are you sure you want to leave the "${group.fullName}" group?`, ); @@ -397,66 +399,60 @@ describe('AppComponent', () => { }); describe('created', () => { - it('should bind event listeners on eventHub', () => { + it('should bind event listeners on eventHub', async () => { jest.spyOn(eventHub, '$on').mockImplementation(() => {}); createShallowComponent(); - return vm.$nextTick().then(() => { - expect(eventHub.$on).toHaveBeenCalledWith('fetchPage', expect.any(Function)); - expect(eventHub.$on).toHaveBeenCalledWith('toggleChildren', expect.any(Function)); - expect(eventHub.$on).toHaveBeenCalledWith('showLeaveGroupModal', expect.any(Function)); - expect(eventHub.$on).toHaveBeenCalledWith('updatePagination', expect.any(Function)); - expect(eventHub.$on).toHaveBeenCalledWith('updateGroups', expect.any(Function)); - }); + await nextTick(); + expect(eventHub.$on).toHaveBeenCalledWith('fetchPage', expect.any(Function)); + expect(eventHub.$on).toHaveBeenCalledWith('toggleChildren', expect.any(Function)); + expect(eventHub.$on).toHaveBeenCalledWith('showLeaveGroupModal', expect.any(Function)); + expect(eventHub.$on).toHaveBeenCalledWith('updatePagination', expect.any(Function)); + expect(eventHub.$on).toHaveBeenCalledWith('updateGroups', expect.any(Function)); }); - it('should initialize `searchEmptyMessage` prop with correct string when `hideProjects` is `false`', () => { + it('should initialize `searchEmptyMessage` prop with correct string when `hideProjects` is `false`', async () => { createShallowComponent(); - return vm.$nextTick().then(() => { - expect(vm.searchEmptyMessage).toBe('No groups or projects matched your search'); - }); + await nextTick(); + expect(vm.searchEmptyMessage).toBe('No groups or projects matched your search'); }); - it('should initialize `searchEmptyMessage` prop with correct string when `hideProjects` is `true`', () => { + it('should initialize `searchEmptyMessage` prop with correct string when `hideProjects` is `true`', async () => { createShallowComponent(true); - return vm.$nextTick().then(() => { - expect(vm.searchEmptyMessage).toBe('No groups matched your search'); - }); + await nextTick(); + expect(vm.searchEmptyMessage).toBe('No groups matched your search'); }); }); describe('beforeDestroy', () => { - it('should unbind event listeners on eventHub', () => { + it('should unbind event listeners on eventHub', async () => { jest.spyOn(eventHub, '$off').mockImplementation(() => {}); createShallowComponent(); wrapper.destroy(); - return vm.$nextTick().then(() => { - expect(eventHub.$off).toHaveBeenCalledWith('fetchPage', expect.any(Function)); - expect(eventHub.$off).toHaveBeenCalledWith('toggleChildren', expect.any(Function)); - expect(eventHub.$off).toHaveBeenCalledWith('showLeaveGroupModal', expect.any(Function)); - expect(eventHub.$off).toHaveBeenCalledWith('updatePagination', expect.any(Function)); - expect(eventHub.$off).toHaveBeenCalledWith('updateGroups', expect.any(Function)); - }); + await nextTick(); + expect(eventHub.$off).toHaveBeenCalledWith('fetchPage', expect.any(Function)); + expect(eventHub.$off).toHaveBeenCalledWith('toggleChildren', expect.any(Function)); + expect(eventHub.$off).toHaveBeenCalledWith('showLeaveGroupModal', expect.any(Function)); + expect(eventHub.$off).toHaveBeenCalledWith('updatePagination', expect.any(Function)); + expect(eventHub.$off).toHaveBeenCalledWith('updateGroups', expect.any(Function)); }); }); describe('template', () => { - it('should render loading icon', () => { + it('should render loading icon', async () => { vm.isLoading = true; - return vm.$nextTick().then(() => { - expect(wrapper.find(GlLoadingIcon).exists()).toBe(true); - }); + await nextTick(); + expect(wrapper.find(GlLoadingIcon).exists()).toBe(true); }); - it('should render groups tree', () => { + it('should render groups tree', async () => { vm.store.state.groups = [mockParentGroupItem]; vm.isLoading = false; - return vm.$nextTick().then(() => { - expect(vm.$el.querySelector('.groups-list-tree-container')).toBeDefined(); - }); + await nextTick(); + expect(vm.$el.querySelector('.groups-list-tree-container')).toBeDefined(); }); it('renders modal confirmation dialog', () => { |