From 1bc64e11072b5044b69b1774a8be72d6374bcbd5 Mon Sep 17 00:00:00 2001 From: Erik Engervall Date: Fri, 30 Apr 2021 14:23:23 +0200 Subject: [PATCH] Api refactor, return object for getAllReleases Signed-off-by: Erik Engervall --- .../src/api/GitReleaseApiClient.ts | 24 ++++++++++--------- .../Stats/helpers/getMappedReleases.tsx | 2 +- .../src/features/Stats/hooks/useGetStats.ts | 2 +- .../src/test-helpers/test-helpers.ts | 20 +++++++++------- 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/plugins/git-release-manager/src/api/GitReleaseApiClient.ts b/plugins/git-release-manager/src/api/GitReleaseApiClient.ts index f76e14f3a8..380eb59761 100644 --- a/plugins/git-release-manager/src/api/GitReleaseApiClient.ts +++ b/plugins/git-release-manager/src/api/GitReleaseApiClient.ts @@ -478,13 +478,15 @@ export class GitReleaseApiClient implements GitReleaseApi { ...DISABLE_CACHE, }); - return releases.map(release => ({ - id: release.id, - name: release.name, - tagName: release.tag_name, - createdAt: release.published_at, - htmlUrl: release.html_url, - })); + return { + releases: releases.map(release => ({ + id: release.id, + name: release.name, + tagName: release.tag_name, + createdAt: release.published_at, + htmlUrl: release.html_url, + })), + }; }; getSingleTag: GitReleaseApi['getSingleTag'] = async ({ @@ -740,15 +742,15 @@ export interface GitReleaseApi { getAllReleases: ( args: OwnerRepo, - ) => Promise< - Array<{ + ) => Promise<{ + releases: Array<{ id: number; name: string | null; tagName: string; createdAt: string | null; htmlUrl: string; - }> - >; + }>; + }>; getSingleTag: ( args: { diff --git a/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.tsx b/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.tsx index cee64436a1..953864461c 100644 --- a/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.tsx +++ b/plugins/git-release-manager/src/features/Stats/helpers/getMappedReleases.tsx @@ -24,7 +24,7 @@ export function getMappedReleases({ allReleases, project, }: { - allReleases: GetAllReleasesResult; + allReleases: GetAllReleasesResult['releases']; project: Project; }) { return { 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 9ec4c8ee92..e87d29c29a 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, { tags: allTags }] = await Promise.all([ + const [{ releases: 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 dd8df9e364..b88e6dbc65 100644 --- a/plugins/git-release-manager/src/test-helpers/test-helpers.ts +++ b/plugins/git-release-manager/src/test-helpers/test-helpers.ts @@ -303,15 +303,17 @@ export const mockApiClient: GitReleaseApi = { ], })), - getAllReleases: jest.fn(async () => [ - { - id: 1, - name: 'mock_release_name', - tagName: 'mock_release_tag_name', - createdAt: 'mock_release_published_at', - htmlUrl: 'mock_release_html_url', - }, - ]), + getAllReleases: jest.fn(async () => ({ + releases: [ + { + id: 1, + name: 'mock_release_name', + tagName: 'mock_release_tag_name', + createdAt: 'mock_release_published_at', + htmlUrl: 'mock_release_html_url', + }, + ], + })), getSingleTag: jest.fn(async () => ({ date: '2021-04-29T12:48:30.120Z',