diff options
Diffstat (limited to 'spec/frontend/invite_members/components/group_select_spec.js')
-rw-r--r-- | spec/frontend/invite_members/components/group_select_spec.js | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/spec/frontend/invite_members/components/group_select_spec.js b/spec/frontend/invite_members/components/group_select_spec.js index 2ef8fe07650..192f3fdd381 100644 --- a/spec/frontend/invite_members/components/group_select_spec.js +++ b/spec/frontend/invite_members/components/group_select_spec.js @@ -4,14 +4,21 @@ import waitForPromises from 'helpers/wait_for_promises'; import * as groupsApi from '~/api/groups_api'; import GroupSelect from '~/invite_members/components/group_select.vue'; -const createComponent = () => { - return mount(GroupSelect, {}); -}; - +const accessLevels = { Guest: 10, Reporter: 20, Developer: 30, Maintainer: 40, Owner: 50 }; const group1 = { id: 1, full_name: 'Group One', avatar_url: 'test' }; const group2 = { id: 2, full_name: 'Group Two', avatar_url: 'test' }; const allGroups = [group1, group2]; +const createComponent = (props = {}) => { + return mount(GroupSelect, { + propsData: { + invalidGroups: [], + accessLevels, + ...props, + }, + }); +}; + describe('GroupSelect', () => { let wrapper; @@ -61,6 +68,7 @@ describe('GroupSelect', () => { expect(groupsApi.getGroups).toHaveBeenCalledWith(group1.name, { active: true, exclude_internal: true, + min_access_level: accessLevels.Guest, }); }); @@ -83,6 +91,20 @@ describe('GroupSelect', () => { size: '32', }); }); + + describe('when filtering out the group from results', () => { + beforeEach(() => { + wrapper = createComponent({ invalidGroups: [group1.id] }); + }); + + it('does not find an invalid group', () => { + expect(findAvatarByLabel(group1.full_name)).toBe(undefined); + }); + + it('finds a group that is valid', () => { + expect(findAvatarByLabel(group2.full_name).exists()).toBe(true); + }); + }); }); describe('when group is selected from the dropdown', () => { |