From 7d82969f10086d0d062af813476df906b278e438 Mon Sep 17 00:00:00 2001 From: Benjamin Janssens Date: Fri, 28 Jun 2024 11:56:51 +0200 Subject: [PATCH] chore: update BitbucketRepoBranchPicker and handleAutocompleteRequest Signed-off-by: Benjamin Janssens --- .../src/autocomplete/autocomplete.test.ts | 12 ++++++++---- .../src/autocomplete/autocomplete.ts | 8 ++++---- .../BitbucketRepoBranchPicker.test.tsx | 4 +++- .../BitbucketRepoBranchPicker.tsx | 17 +++++++++-------- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.test.ts b/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.test.ts index b124c65f78..d99a8358b9 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.test.ts +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.test.ts @@ -95,12 +95,16 @@ describe('handleAutocompleteRequest', () => { }); it('should return branches', async () => { - const result = await handleBitbucketCloudRequest('foo', 'branches', { - workspace: 'workspace1', - repository: 'repository1', + const result = await handleAutocompleteRequest({ + token: 'foo', + resource: 'branches', + context: { + workspace: 'workspace1', + repository: 'repository1', + }, }); - expect(result).toEqual(['branch1']); + expect(result).toEqual({ results: [{ title: 'branch1' }] }); }); it('should throw an error when passing an invalid resource', async () => { diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.ts b/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.ts index 70824995ac..58d2bc9c6d 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.ts +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/src/autocomplete/autocomplete.ts @@ -78,21 +78,21 @@ export async function handleAutocompleteRequest({ return { results: result.map(title => ({ title })) }; } case 'branches': { - if (!parameters.workspace || !parameters.repository) + if (!context.workspace || !context.repository) throw new InputError( - 'Missing workspace and/or repository query parameter', + 'Missing workspace and/or repository context parameter', ); const result: string[] = []; for await (const page of client - .listBranchesByRepository(parameters.repository, parameters.workspace) + .listBranchesByRepository(context.repository, context.workspace) .iteratePages()) { const names = [...page.values!].map(p => p.name!); result.push(...names); } - return result; + return { results: result.map(title => ({ title })) }; } default: throw new InputError(`Invalid resource: ${resource}`); diff --git a/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.test.tsx index 6cbc561bc9..638a05b4ce 100644 --- a/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.test.tsx @@ -26,7 +26,9 @@ import userEvent from '@testing-library/user-event'; describe('BitbucketRepoBranchPicker', () => { const scaffolderApiMock: Partial = { - autocomplete: jest.fn().mockResolvedValue(['branch1']), + autocomplete: jest + .fn() + .mockResolvedValue({ results: [{ title: 'branch1' }] }), }; it('renders an input field', () => { diff --git a/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.tsx b/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.tsx index 76de25dba0..ed54cddc5e 100644 --- a/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.tsx +++ b/plugins/scaffolder/src/components/fields/RepoBranchPicker/BitbucketRepoBranchPicker.tsx @@ -57,16 +57,17 @@ export const BitbucketRepoBranchPicker = ({ host === 'bitbucket.org' && accessToken && workspace && - repository + repository && + scaffolderApi.autocomplete ) { - const result = await scaffolderApi.autocomplete( - accessToken, - 'bitbucketCloud', - 'branches', - { workspace, repository }, - ); + const { results } = await scaffolderApi.autocomplete({ + token: accessToken, + resource: 'branches', + context: { workspace, repository }, + provider: 'bitbucket-cloud', + }); - setAvailableBranches(result); + setAvailableBranches(results.map(r => r.title)); } else { setAvailableBranches([]); }