From b54cbe2c737b3672737bb7cd1919a030cd75484c Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 11 Aug 2021 18:10:52 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .../members/components/members_tabs_spec.js | 27 ++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'spec/frontend/members') diff --git a/spec/frontend/members/components/members_tabs_spec.js b/spec/frontend/members/components/members_tabs_spec.js index 68f25bcb619..1d882e5ef09 100644 --- a/spec/frontend/members/components/members_tabs_spec.js +++ b/spec/frontend/members/components/members_tabs_spec.js @@ -1,4 +1,4 @@ -import { GlTabs } from '@gitlab/ui'; +import { GlTabs, GlButton } from '@gitlab/ui'; import Vue, { nextTick } from 'vue'; import Vuex from 'vuex'; import setWindowLocation from 'helpers/set_window_location_helper'; @@ -17,7 +17,7 @@ describe('MembersTabs', () => { let wrapper; - const createComponent = ({ totalItems = 10, options = {} } = {}) => { + const createComponent = ({ totalItems = 10, provide = {} } = {}) => { const store = new Vuex.Store({ modules: { [MEMBER_TYPES.user]: { @@ -79,8 +79,10 @@ describe('MembersTabs', () => { stubs: ['members-app'], provide: { canManageMembers: true, + canExportMembers: true, + exportCsvPath: '', + ...provide, }, - ...options, }); return nextTick(); @@ -89,6 +91,7 @@ describe('MembersTabs', () => { const findTabs = () => wrapper.findAllByRole('tab').wrappers; const findTabByText = (text) => findTabs().find((tab) => tab.text().includes(text)); const findActiveTab = () => wrapper.findByRole('tab', { selected: true }); + const findExportButton = () => wrapper.findComponent(GlButton); beforeEach(() => { setWindowLocation('https://localhost'); @@ -164,7 +167,7 @@ describe('MembersTabs', () => { describe('when `canManageMembers` is `false`', () => { it('shows all tabs except `Invited` and `Access requests`', async () => { - await createComponent({ options: { provide: { canManageMembers: false } } }); + await createComponent({ provide: { canManageMembers: false } }); expect(findTabByText('Members')).not.toBeUndefined(); expect(findTabByText('Groups')).not.toBeUndefined(); @@ -172,4 +175,20 @@ describe('MembersTabs', () => { expect(findTabByText('Access requests')).toBeUndefined(); }); }); + + describe('when `canExportMembers` is true', () => { + it('shows the CSV export button with export path', async () => { + await createComponent({ provide: { canExportMembers: true, exportCsvPath: 'foo' } }); + + expect(findExportButton().attributes('href')).toBe('foo'); + }); + }); + + describe('when `canExportMembers` is false', () => { + it('does not show the CSV export button', async () => { + await createComponent({ provide: { canExportMembers: false } }); + + expect(findExportButton().exists()).toBe(false); + }); + }); }); -- cgit v1.2.3