diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-11 21:10:52 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-11 21:10:52 +0300 |
commit | b54cbe2c737b3672737bb7cd1919a030cd75484c (patch) | |
tree | 384887bc2d0d894b53ab27f8d9f9296ad534e9b0 /spec/frontend/members | |
parent | 4f54ec92edd344449ee005fd4dd727fa2e3e3ffd (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/members')
-rw-r--r-- | spec/frontend/members/components/members_tabs_spec.js | 27 |
1 files changed, 23 insertions, 4 deletions
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); + }); + }); }); |