diff --git a/plugins/git-release-manager/src/features/CreateReleaseCandidate/CreateReleaseCandidate.tsx b/plugins/git-release-manager/src/features/CreateReleaseCandidate/CreateReleaseCandidate.tsx index 177e9f1195..0b105c076c 100644 --- a/plugins/git-release-manager/src/features/CreateReleaseCandidate/CreateReleaseCandidate.tsx +++ b/plugins/git-release-manager/src/features/CreateReleaseCandidate/CreateReleaseCandidate.tsx @@ -42,8 +42,8 @@ import { useCreateReleaseCandidate } from './hooks/useCreateReleaseCandidate'; import { useProjectContext } from '../../contexts/ProjectContext'; interface CreateReleaseCandidateProps { - defaultBranch: GetRepositoryResult['defaultBranch']; - latestRelease: GetLatestReleaseResult; + defaultBranch: GetRepositoryResult['repository']['defaultBranch']; + latestRelease: GetLatestReleaseResult['latestRelease']; releaseBranch: GetBranchResult | null; successCb?: ComponentConfigCreateRc['successCb']; } diff --git a/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.ts b/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.ts index f9f188e880..af07bfe3c9 100644 --- a/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.ts +++ b/plugins/git-release-manager/src/features/CreateReleaseCandidate/hooks/useCreateReleaseCandidate.ts @@ -32,8 +32,8 @@ import { useResponseSteps } from '../../../hooks/useResponseSteps'; import { useUserContext } from '../../../contexts/UserContext'; interface UseCreateReleaseCandidate { - defaultBranch: GetRepositoryResult['defaultBranch']; - latestRelease: GetLatestReleaseResult; + defaultBranch: GetRepositoryResult['repository']['defaultBranch']; + latestRelease: GetLatestReleaseResult['latestRelease']; releaseCandidateGitInfo: ReturnType; project: Project; successCb?: ComponentConfigCreateRc['successCb']; diff --git a/plugins/git-release-manager/src/features/Info/Info.tsx b/plugins/git-release-manager/src/features/Info/Info.tsx index 616f20a750..b7f1b89e56 100644 --- a/plugins/git-release-manager/src/features/Info/Info.tsx +++ b/plugins/git-release-manager/src/features/Info/Info.tsx @@ -31,7 +31,7 @@ import flowImage from './flow.png'; interface InfoCardProps { releaseBranch: GetBranchResult | null; - latestRelease: GetLatestReleaseResult; + latestRelease: GetLatestReleaseResult['latestRelease']; statsEnabled: boolean; } diff --git a/plugins/git-release-manager/src/features/Patch/Patch.tsx b/plugins/git-release-manager/src/features/Patch/Patch.tsx index 1dc5569f45..50d0d52628 100644 --- a/plugins/git-release-manager/src/features/Patch/Patch.tsx +++ b/plugins/git-release-manager/src/features/Patch/Patch.tsx @@ -30,7 +30,7 @@ import { PatchBody } from './PatchBody'; import { useProjectContext } from '../../contexts/ProjectContext'; interface PatchProps { - latestRelease: GetLatestReleaseResult; + latestRelease: GetLatestReleaseResult['latestRelease']; releaseBranch: GetBranchResult | null; successCb?: ComponentConfigPatch['successCb']; } diff --git a/plugins/git-release-manager/src/features/Patch/PatchBody.tsx b/plugins/git-release-manager/src/features/Patch/PatchBody.tsx index 6bfac03558..1f841e753f 100644 --- a/plugins/git-release-manager/src/features/Patch/PatchBody.tsx +++ b/plugins/git-release-manager/src/features/Patch/PatchBody.tsx @@ -54,7 +54,7 @@ import { useProjectContext } from '../../contexts/ProjectContext'; interface PatchBodyProps { bumpedTag: string; - latestRelease: NonNullable; + latestRelease: NonNullable; releaseBranch: GetBranchResult; successCb?: ComponentConfigPatch['successCb']; tagParts: NonNullable; diff --git a/plugins/git-release-manager/src/features/Patch/hooks/usePatch.ts b/plugins/git-release-manager/src/features/Patch/hooks/usePatch.ts index ff6c8dc38d..a88ac21d72 100644 --- a/plugins/git-release-manager/src/features/Patch/hooks/usePatch.ts +++ b/plugins/git-release-manager/src/features/Patch/hooks/usePatch.ts @@ -34,7 +34,7 @@ import { useUserContext } from '../../../contexts/UserContext'; interface Patch { bumpedTag: string; - latestRelease: NonNullable; + latestRelease: NonNullable; project: Project; tagParts: NonNullable; successCb?: ComponentConfigPatch['successCb']; diff --git a/plugins/git-release-manager/src/features/PromoteRc/PromoteRc.tsx b/plugins/git-release-manager/src/features/PromoteRc/PromoteRc.tsx index efee800969..af02c52d4d 100644 --- a/plugins/git-release-manager/src/features/PromoteRc/PromoteRc.tsx +++ b/plugins/git-release-manager/src/features/PromoteRc/PromoteRc.tsx @@ -26,7 +26,7 @@ import { PromoteRcBody } from './PromoteRcBody'; import { TEST_IDS } from '../../test-helpers/test-ids'; interface PromoteRcProps { - latestRelease: GetLatestReleaseResult; + latestRelease: GetLatestReleaseResult['latestRelease']; successCb?: ComponentConfigPromoteRc['successCb']; } diff --git a/plugins/git-release-manager/src/features/PromoteRc/PromoteRcBody.tsx b/plugins/git-release-manager/src/features/PromoteRc/PromoteRcBody.tsx index 5cc8def9e2..6f8695b37b 100644 --- a/plugins/git-release-manager/src/features/PromoteRc/PromoteRcBody.tsx +++ b/plugins/git-release-manager/src/features/PromoteRc/PromoteRcBody.tsx @@ -25,7 +25,7 @@ import { TEST_IDS } from '../../test-helpers/test-ids'; import { usePromoteRc } from './hooks/usePromoteRc'; interface PromoteRcBodyProps { - rcRelease: NonNullable; + rcRelease: NonNullable; successCb?: ComponentConfigPromoteRc['successCb']; } diff --git a/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.ts b/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.ts index 035ff10724..7980b38ed8 100644 --- a/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.ts +++ b/plugins/git-release-manager/src/features/PromoteRc/hooks/usePromoteRc.ts @@ -21,14 +21,14 @@ import { useApi } from '@backstage/core'; import { CardHook, ComponentConfigPromoteRc } from '../../../types/types'; import { GetLatestReleaseResult } from '../../../api/GitReleaseApiClient'; import { gitReleaseManagerApiRef } from '../../../api/serviceApiRef'; +import { GitReleaseManagerError } from '../../../errors/GitReleaseManagerError'; +import { TAG_OBJECT_MESSAGE } from '../../../constants/constants'; import { useProjectContext } from '../../../contexts/ProjectContext'; import { useResponseSteps } from '../../../hooks/useResponseSteps'; import { useUserContext } from '../../../contexts/UserContext'; -import { TAG_OBJECT_MESSAGE } from '../../../constants/constants'; -import { GitReleaseManagerError } from '../../../errors/GitReleaseManagerError'; interface PromoteRc { - rcRelease: NonNullable; + rcRelease: NonNullable; releaseVersion: string; successCb?: ComponentConfigPromoteRc['successCb']; } diff --git a/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.ts b/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.ts index ce4a9c0c80..80ed3083ce 100644 --- a/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.ts +++ b/plugins/git-release-manager/src/helpers/getReleaseCandidateGitInfo.ts @@ -22,17 +22,19 @@ import { getSemverTagParts } from './tagParts/getSemverTagParts'; import { Project } from '../contexts/ProjectContext'; import { SEMVER_PARTS } from '../constants/constants'; +interface GetReleaseCandidateGitInfo { + project: Project; + latestRelease: GetLatestReleaseResult['latestRelease']; + semverBumpLevel: keyof typeof SEMVER_PARTS; + injectedDate?: string; +} + export const getReleaseCandidateGitInfo = ({ project, latestRelease, semverBumpLevel, injectedDate = DateTime.now().toFormat('yyyy.MM.dd'), -}: { - project: Project; - latestRelease: GetLatestReleaseResult; - semverBumpLevel: keyof typeof SEMVER_PARTS; - injectedDate?: string; -}) => { +}: GetReleaseCandidateGitInfo) => { if (project.versioningStrategy === 'calver') { return { rcBranch: `rc/${injectedDate}`, diff --git a/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts b/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts index cf0147db40..9a32b1a806 100644 --- a/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts +++ b/plugins/git-release-manager/src/helpers/tagParts/validateTagParts.test.ts @@ -31,10 +31,10 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "tagNameError": undefined, - } - `); + Object { + "tagNameError": undefined, + } + `); }); it('should not return any error for semver project without any releases (i.e. no tagName)', () => { @@ -74,13 +74,13 @@ describe('validateTagName', () => { }); expect(result).toMatchInlineSnapshot(` - Object { - "tagNameError": Object { - "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"rc-1.2.3\\"", - "title": "Invalid tag", - }, - } - `); + Object { + "tagNameError": Object { + "subtitle": "Expected calver matching \\"/(rc|version)-([0-9]{4}\\\\.[0-9]{2}\\\\.[0-9]{2})_([0-9]+)/\\", found \\"rc-1.2.3\\"", + "title": "Invalid tag", + }, + } + `); }); }); diff --git a/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts b/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts index e2a355a2e6..627ede5920 100644 --- a/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts +++ b/plugins/git-release-manager/src/hooks/useGetGitBatchInfo.test.ts @@ -86,16 +86,8 @@ describe('useGetHubBatchInfo', () => { expect(result.current.gitBatchInfo).toMatchInlineSnapshot(` Object { + "error": [TypeError: Cannot read property 'latestRelease' of null], "loading": false, - "value": Object { - "latestRelease": null, - "releaseBranch": null, - "repository": Object { - "defaultBranch": "mock_defaultBranch", - "name": "mock_repo", - "pushPermissions": true, - }, - }, } `); }); 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 30072bd431..bd6ecbf345 100644 --- a/plugins/git-release-manager/src/test-helpers/test-helpers.ts +++ b/plugins/git-release-manager/src/test-helpers/test-helpers.ts @@ -98,15 +98,13 @@ const createMockRelease = ({ ...rest }: Partial< NonNullable -> = {}): NonNullable => ({ - latestRelease: { - id, - htmlUrl: 'mock_release_html_url', - prerelease, - tagName: MOCK_RELEASE_CANDIDATE_TAG_NAME_CALVER, - targetCommitish: MOCK_RELEASE_BRANCH_NAME_CALVER, - ...rest, - }, +> = {}): NonNullable => ({ + id, + htmlUrl: 'mock_release_html_url', + prerelease, + tagName: MOCK_RELEASE_CANDIDATE_TAG_NAME_CALVER, + targetCommitish: MOCK_RELEASE_BRANCH_NAME_CALVER, + ...rest, }); export const mockReleaseCandidateCalver = createMockRelease({ @@ -207,7 +205,9 @@ export const mockApiClient: GitReleaseApi = { ], })), - getLatestRelease: jest.fn(async () => createMockRelease()), + getLatestRelease: jest.fn(async () => ({ + latestRelease: createMockRelease(), + })), getRepository: jest.fn(async () => ({ repository: {