Skip to content

Commit 6d81d4e

Browse files
committed
bugfix-329-it-ends-up-stuck-in-an-unknown-version-loop-if-no-version-is-detected-in-the-repository: Enhance test coverage for InitialSetupUseCase and UpdateTitleUseCase. Add tests to verify error handling when ensureDefaultVersion fails and ensure fallback title usage when getTitle returns undefined. Improve clarity and consistency in test cases.
1 parent 50d006b commit 6d81d4e

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/usecase/actions/__tests__/initial_setup_use_case.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,15 @@ describe('InitialSetupUseCase', () => {
177177
expect(results[0].errors?.some((e) => String(e).includes('Failed to create tag'))).toBe(true);
178178
});
179179

180+
it('reports error when ensureDefaultVersion throws (e.g. getLatestTag fails)', async () => {
181+
mockGetLatestTag.mockRejectedValue(new Error('network error'));
182+
const param = baseParam();
183+
const results = await useCase.invoke(param);
184+
expect(results[0].success).toBe(false);
185+
expect(results[0].errors?.some((e) => String(e).includes('Error ensuring default version'))).toBe(true);
186+
expect(mockGetDefaultBranch).not.toHaveBeenCalled();
187+
});
188+
180189
it('returns failure when verifyGitHubAccess fails', async () => {
181190
mockGetUserFromToken.mockRejectedValue(new Error('Invalid token'));
182191
const param = baseParam();

src/usecase/steps/common/__tests__/update_title_use_case.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,32 @@ describe('UpdateTitleUseCase', () => {
105105
expect(results[0].executed).toBe(false);
106106
});
107107

108+
it('uses param.issue.title when getTitle returns undefined for issue', async () => {
109+
mockGetTitle.mockResolvedValue(undefined);
110+
mockUpdateTitleIssueFormat.mockResolvedValue('🚀 Fallback title');
111+
const param = baseParam({
112+
isIssue: true,
113+
emoji: { emojiLabeledTitle: true, branchManagementEmoji: '' },
114+
issue: { number: 1, title: 'Fallback title', branchManagementAlways: false },
115+
});
116+
117+
const results = await useCase.invoke(param);
118+
119+
expect(results[0].success).toBe(true);
120+
expect(results[0].executed).toBe(true);
121+
expect(mockUpdateTitleIssueFormat).toHaveBeenCalledWith(
122+
'o',
123+
'r',
124+
'',
125+
'Fallback title',
126+
1,
127+
false,
128+
'',
129+
{},
130+
't'
131+
);
132+
});
133+
108134
it('returns failure when isPullRequest, emojiLabeledTitle, but getTitle returns undefined', async () => {
109135
mockGetTitle.mockResolvedValue(undefined);
110136
const param = baseParam({

0 commit comments

Comments
 (0)