From de28d4e07cefeac41c77b4def3278ac6962708be Mon Sep 17 00:00:00 2001 From: Erik Engervall Date: Fri, 30 Apr 2021 14:21:48 +0200 Subject: [PATCH] Api refactor, return object for getAllTags Signed-off-by: Erik Engervall --- .../src/api/GitReleaseApiClient.ts | 24 ++++++++++--------- .../Stats/helpers/getReleaseStats.tsx | 2 +- .../src/features/Stats/hooks/useGetStats.ts | 2 +- .../src/test-helpers/test-helpers.ts | 16 +++++++------ 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/plugins/git-release-manager/src/api/GitReleaseApiClient.ts b/plugins/git-release-manager/src/api/GitReleaseApiClient.ts index b730c579e2..f76e14f3a8 100644 --- a/plugins/git-release-manager/src/api/GitReleaseApiClient.ts +++ b/plugins/git-release-manager/src/api/GitReleaseApiClient.ts @@ -457,13 +457,15 @@ export class GitReleaseApiClient implements GitReleaseApi { ...DISABLE_CACHE, }); - return tags - .map(tag => ({ - tagName: tag.ref.replace('refs/tags/', ''), - tagSha: tag.object.sha, - tagType: tag.object.type as 'tag' | 'commit', - })) - .reverse(); + return { + tags: tags + .map(tag => ({ + tagName: tag.ref.replace('refs/tags/', ''), + tagSha: tag.object.sha, + tagType: tag.object.type as 'tag' | 'commit', + })) + .reverse(), + }; }; getAllReleases: GitReleaseApi['getAllReleases'] = async ({ owner, repo }) => { @@ -728,13 +730,13 @@ export interface GitReleaseApi { */ getAllTags: ( args: OwnerRepo, - ) => Promise< - Array<{ + ) => Promise<{ + tags: Array<{ tagName: string; tagSha: string; tagType: 'tag' | 'commit'; - }> - >; + }>; + }>; getAllReleases: ( args: OwnerRepo, diff --git a/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.tsx b/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.tsx index fb3bad8d0c..e6b7d91f60 100644 --- a/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.tsx +++ b/plugins/git-release-manager/src/features/Stats/helpers/getReleaseStats.tsx @@ -25,7 +25,7 @@ export function getReleaseStats({ project, mappedReleases, }: { - allTags: GetAllTagsResult; + allTags: GetAllTagsResult['tags']; project: Project; mappedReleases: ReleaseStats; }) { diff --git a/plugins/git-release-manager/src/features/Stats/hooks/useGetStats.ts b/plugins/git-release-manager/src/features/Stats/hooks/useGetStats.ts index 7981a40267..9ec4c8ee92 100644 --- a/plugins/git-release-manager/src/features/Stats/hooks/useGetStats.ts +++ b/plugins/git-release-manager/src/features/Stats/hooks/useGetStats.ts @@ -25,7 +25,7 @@ export const useGetStats = () => { const { project } = useProjectContext(); const stats = useAsync(async () => { - const [allReleases, allTags] = await Promise.all([ + const [allReleases, { tags: allTags }] = await Promise.all([ pluginApiClient.getAllReleases({ owner: project.owner, repo: project.repo, diff --git a/plugins/git-release-manager/src/test-helpers/test-helpers.ts b/plugins/git-release-manager/src/test-helpers/test-helpers.ts index 99443baa35..dd8df9e364 100644 --- a/plugins/git-release-manager/src/test-helpers/test-helpers.ts +++ b/plugins/git-release-manager/src/test-helpers/test-helpers.ts @@ -293,13 +293,15 @@ export const mockApiClient: GitReleaseApi = { }, })), - getAllTags: jest.fn(async () => [ - { - tagName: MOCK_RELEASE_CANDIDATE_TAG_NAME_CALVER, - tagSha: 'mock_sha', - tagType: 'tag' as const, - }, - ]), + getAllTags: jest.fn(async () => ({ + tags: [ + { + tagName: MOCK_RELEASE_CANDIDATE_TAG_NAME_CALVER, + tagSha: 'mock_sha', + tagType: 'tag' as const, + }, + ], + })), getAllReleases: jest.fn(async () => [ {