diff options
Diffstat (limited to 'spec/frontend/import_entities/import_groups/components/import_table_spec.js')
-rw-r--r-- | spec/frontend/import_entities/import_groups/components/import_table_spec.js | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/spec/frontend/import_entities/import_groups/components/import_table_spec.js b/spec/frontend/import_entities/import_groups/components/import_table_spec.js index dd734782169..4b9fac96380 100644 --- a/spec/frontend/import_entities/import_groups/components/import_table_spec.js +++ b/spec/frontend/import_entities/import_groups/components/import_table_spec.js @@ -21,9 +21,13 @@ describe('import table', () => { let apolloProvider; const FAKE_GROUP = generateFakeEntry({ id: 1, status: STATUSES.NONE }); + const FAKE_GROUPS = [ + generateFakeEntry({ id: 1, status: STATUSES.NONE }), + generateFakeEntry({ id: 2, status: STATUSES.FINISHED }), + ]; const FAKE_PAGE_INFO = { page: 1, perPage: 20, total: 40, totalPages: 2 }; - const createComponent = ({ bulkImportSourceGroups }) => { + const createComponent = ({ bulkImportSourceGroups, canCreateGroup }) => { apolloProvider = createMockApollo([], { Query: { availableNamespaces: () => availableNamespacesFixture, @@ -39,6 +43,7 @@ describe('import table', () => { wrapper = shallowMount(ImportTable, { propsData: { sourceUrl: 'https://demo.host', + canCreateGroup, }, stubs: { GlSprintf, @@ -80,14 +85,10 @@ describe('import table', () => { }); await waitForPromises(); - expect(wrapper.find(GlEmptyState).props().title).toBe('No groups available for import'); + expect(wrapper.find(GlEmptyState).props().title).toBe('You have no groups to import'); }); it('renders import row for each group in response', async () => { - const FAKE_GROUPS = [ - generateFakeEntry({ id: 1, status: STATUSES.NONE }), - generateFakeEntry({ id: 2, status: STATUSES.FINISHED }), - ]; createComponent({ bulkImportSourceGroups: () => ({ nodes: FAKE_GROUPS, @@ -99,6 +100,25 @@ describe('import table', () => { expect(wrapper.findAll(ImportTableRow)).toHaveLength(FAKE_GROUPS.length); }); + it.each` + canCreateGroup | userPermissions + ${true} | ${'user can create new top-level group'} + ${false} | ${'user cannot create new top-level group'} + `('correctly passes canCreateGroup to rows when $userPermissions', async ({ canCreateGroup }) => { + createComponent({ + bulkImportSourceGroups: () => ({ + nodes: FAKE_GROUPS, + pageInfo: FAKE_PAGE_INFO, + }), + canCreateGroup, + }); + await waitForPromises(); + + wrapper.findAllComponents(ImportTableRow).wrappers.forEach((w) => { + expect(w.props().canCreateGroup).toBe(canCreateGroup); + }); + }); + it('does not render status string when result list is empty', async () => { createComponent({ bulkImportSourceGroups: jest.fn().mockResolvedValue({ |