diff --git a/src/main/java/pl/commit/craft/quick/CommitQuickController.java b/src/main/java/pl/commit/craft/quick/CommitQuickController.java index 598fb22..5cf83fc 100644 --- a/src/main/java/pl/commit/craft/quick/CommitQuickController.java +++ b/src/main/java/pl/commit/craft/quick/CommitQuickController.java @@ -29,6 +29,7 @@ public String generateCommit( ) CommitQuickRequest commitQuickRequest) { return commitQuickService.generateQuickCommit( commitQuickRequest.topicScope(), + commitQuickRequest.message(), commitQuickRequest.isGitCommand() ); } diff --git a/src/main/java/pl/commit/craft/quick/CommitQuickRequest.java b/src/main/java/pl/commit/craft/quick/CommitQuickRequest.java index 74b7c68..6b137e1 100644 --- a/src/main/java/pl/commit/craft/quick/CommitQuickRequest.java +++ b/src/main/java/pl/commit/craft/quick/CommitQuickRequest.java @@ -2,6 +2,7 @@ record CommitQuickRequest( String topicScope, + String message, boolean isGitCommand ) { } diff --git a/src/main/java/pl/commit/craft/quick/CommitQuickService.java b/src/main/java/pl/commit/craft/quick/CommitQuickService.java index 2746b3f..c957b70 100644 --- a/src/main/java/pl/commit/craft/quick/CommitQuickService.java +++ b/src/main/java/pl/commit/craft/quick/CommitQuickService.java @@ -7,17 +7,25 @@ class CommitQuickService { private static final String AUDIT_COMMIT = "audit: Audit fix"; private static final String PR_FIX_COMMIT = "fix: Pull request comments improved"; private static final String TEST_FIX_COMMIT = "test: Fixed tests"; + private static final String WIP_COMMIT = "wip: Work in progress"; - public String generateQuickCommit(String topicScope, boolean isGitCommand) { - String commitMessage = switch (topicScope) { - case "audit" -> AUDIT_COMMIT; - case "fix" -> PR_FIX_COMMIT; - case "test" -> TEST_FIX_COMMIT; - default -> "Unknown commit type"; - }; + public String generateQuickCommit(String topicScope, String message, boolean isGitCommand) { + String commitMessage; + + if (message == null || message.isEmpty()) { + commitMessage = switch (topicScope) { + case "audit" -> AUDIT_COMMIT; + case "fix" -> PR_FIX_COMMIT; + case "test" -> TEST_FIX_COMMIT; + case "wip" -> WIP_COMMIT; + default -> "unknown: Unknown commit type"; + }; + } else { + commitMessage = topicScope + ": " + message; + } return isGitCommand - ? String.format("git commit --no-verify -m \"%s\"", commitMessage).trim() - : commitMessage; + ? String.format("git commit --no-verify -m \"%s\"", commitMessage).trim().toLowerCase() + : commitMessage.toLowerCase(); } } \ No newline at end of file diff --git a/src/main/java/pl/commit/craft/service/CommitTranslateService.java b/src/main/java/pl/commit/craft/service/CommitTranslateService.java index c731632..e95b3ec 100644 --- a/src/main/java/pl/commit/craft/service/CommitTranslateService.java +++ b/src/main/java/pl/commit/craft/service/CommitTranslateService.java @@ -45,13 +45,13 @@ public String generateFlowCommit(String major, String type, String component, St majorNumber != null ? majorNumber.issueNumber() : "", type, component, - changeDescription, + changeDescription.toLowerCase(), detailsFlow ).trim(); } private String getChangeDescriptionTranslated(String changeDescription, String language) { - return translateCommitCraft.translate(changeDescription, CommitModelPattern.getTargetLanguage(language)); + return translateCommitCraft.translate(changeDescription, CommitModelPattern.getTargetLanguage(language)).toLowerCase(); } private boolean isValidType(String type) { diff --git a/src/test/java/pl/commit/craft/quick/CommitQuickControllerTest.java b/src/test/java/pl/commit/craft/quick/CommitQuickControllerTest.java index 5ff5d85..5e37e69 100644 --- a/src/test/java/pl/commit/craft/quick/CommitQuickControllerTest.java +++ b/src/test/java/pl/commit/craft/quick/CommitQuickControllerTest.java @@ -34,10 +34,10 @@ void testGenerateCommitSuccess() throws Exception { String topicScope = "fix"; boolean isGitCommand = true; - CommitQuickRequest commitQuickRequest = new CommitQuickRequest(topicScope, isGitCommand); + CommitQuickRequest commitQuickRequest = new CommitQuickRequest(topicScope, null, isGitCommand); String expectedCommitMessage = "git commit -m \"fix: fixed a bug\""; - when(commitQuickService.generateQuickCommit(topicScope, isGitCommand)).thenReturn(expectedCommitMessage); + when(commitQuickService.generateQuickCommit(topicScope, null, isGitCommand)).thenReturn(expectedCommitMessage); mockMvc.perform(post("/api/v1/commit-quick/craft") .contentType(MediaType.APPLICATION_JSON) @@ -45,7 +45,7 @@ void testGenerateCommitSuccess() throws Exception { .andExpect(status().isOk()) .andExpect(content().string(expectedCommitMessage)); - verify(commitQuickService, times(1)).generateQuickCommit(topicScope, isGitCommand); + verify(commitQuickService, times(1)).generateQuickCommit(topicScope, null, isGitCommand); } @Test @@ -53,9 +53,9 @@ void testGenerateCommitFailure() throws Exception { String topicScope = "invalidTopic"; boolean isGitCommand = false; - CommitQuickRequest commitQuickRequest = new CommitQuickRequest(topicScope, isGitCommand); + CommitQuickRequest commitQuickRequest = new CommitQuickRequest(topicScope, null, isGitCommand); - when(commitQuickService.generateQuickCommit(topicScope, isGitCommand)).thenReturn("Invalid commit"); + when(commitQuickService.generateQuickCommit(topicScope, null, isGitCommand)).thenReturn("Invalid commit"); mockMvc.perform(post("/api/v1/commit-quick/craft") .contentType(MediaType.APPLICATION_JSON) @@ -63,6 +63,6 @@ void testGenerateCommitFailure() throws Exception { .andExpect(status().isOk()) .andExpect(content().string("Invalid commit")); - verify(commitQuickService, times(1)).generateQuickCommit(topicScope, isGitCommand); + verify(commitQuickService, times(1)).generateQuickCommit(topicScope, null, isGitCommand); } } \ No newline at end of file diff --git a/src/test/java/pl/commit/craft/quick/CommitQuickServiceTest.java b/src/test/java/pl/commit/craft/quick/CommitQuickServiceTest.java index 181e6c2..e3c3fd6 100644 --- a/src/test/java/pl/commit/craft/quick/CommitQuickServiceTest.java +++ b/src/test/java/pl/commit/craft/quick/CommitQuickServiceTest.java @@ -10,49 +10,55 @@ class CommitQuickServiceTest { @Test void testGenerateQuickCommit_Audit_NoGitCommand() { - String result = commitQuickService.generateQuickCommit("audit", false); - assertEquals("audit: Audit fix", result); + String result = commitQuickService.generateQuickCommit("audit", null, false); + assertEquals("audit: audit fix", result); } @Test void testGenerateQuickCommit_Fix_NoGitCommand() { - String result = commitQuickService.generateQuickCommit("fix", false); - assertEquals("fix: Pull request comments improved", result); + String result = commitQuickService.generateQuickCommit("fix", null,false); + assertEquals("fix: pull request comments improved", result); } @Test void testGenerateQuickCommit_Test_NoGitCommand() { - String result = commitQuickService.generateQuickCommit("test", false); - assertEquals("test: Fixed tests", result); + String result = commitQuickService.generateQuickCommit("test", null,false); + assertEquals("test: fixed tests", result); } @Test void testGenerateQuickCommit_UnknownTopic_NoGitCommand() { - String result = commitQuickService.generateQuickCommit("unknown", false); - assertEquals("Unknown commit type", result); + String result = commitQuickService.generateQuickCommit("unknown", "", false); + assertEquals("unknown: unknown commit type", result); } @Test void testGenerateQuickCommit_Audit_WithGitCommand() { - String result = commitQuickService.generateQuickCommit("audit", true); - assertEquals("git commit --no-verify -m \"audit: Audit fix\"", result); + String result = commitQuickService.generateQuickCommit("audit", "", true); + assertEquals("git commit --no-verify -m \"audit: audit fix\"", result); } @Test void testGenerateQuickCommit_Fix_WithGitCommand() { - String result = commitQuickService.generateQuickCommit("fix", true); - assertEquals("git commit --no-verify -m \"fix: Pull request comments improved\"", result); + String result = commitQuickService.generateQuickCommit("fix", "", true); + assertEquals("git commit --no-verify -m \"fix: pull request comments improved\"", result); } @Test void testGenerateQuickCommit_Test_WithGitCommand() { - String result = commitQuickService.generateQuickCommit("test", true); - assertEquals("git commit --no-verify -m \"test: Fixed tests\"", result); + String result = commitQuickService.generateQuickCommit("test", "", true); + assertEquals("git commit --no-verify -m \"test: fixed tests\"", result); } @Test void testGenerateQuickCommit_UnknownTopic_WithGitCommand() { - String result = commitQuickService.generateQuickCommit("unknown", true); - assertEquals("git commit --no-verify -m \"Unknown commit type\"", result); + String result = commitQuickService.generateQuickCommit("unknown", null, true); + assertEquals("git commit --no-verify -m \"unknown: unknown commit type\"", result); + } + + @Test + void testGenerateQuickCommit_WIP_WithGitCommandAndMessage() { + String result = commitQuickService.generateQuickCommit("audit", "check approach", true); + assertEquals("git commit --no-verify -m \"audit: check approach\"", result); } } \ No newline at end of file diff --git a/src/test/java/pl/commit/craft/service/CommitTranslateServiceTest.java b/src/test/java/pl/commit/craft/service/CommitTranslateServiceTest.java index afd3be1..95e3614 100644 --- a/src/test/java/pl/commit/craft/service/CommitTranslateServiceTest.java +++ b/src/test/java/pl/commit/craft/service/CommitTranslateServiceTest.java @@ -44,8 +44,8 @@ void testGenerateTranslateCommitValidType() { assertNotNull(commitMessage); assertTrue(commitMessage.contains("feat")); assertTrue(commitMessage.contains("UI")); - assertTrue(commitMessage.contains("Add new button")); - assertTrue(commitMessage.contains("Added a new button to the main page.")); + assertTrue(commitMessage.contains("add new button")); + assertTrue(commitMessage.contains("added a new button to the main page.")); } @Test @@ -98,7 +98,7 @@ void testGenerateTranslateCommitWithTaskNumberAndWholeGitCommandIsFalse() { // then assertNotNull(commitMessage); assertTrue(commitMessage.contains("TEET-1234")); - assertThat(commitMessage).isEqualTo("TEET-1234 feat(UI): Add new feature"); + assertThat(commitMessage).isEqualTo("TEET-1234 feat(UI): add new feature"); } @Test @@ -116,6 +116,6 @@ void testGenerateFlowCommitWithTaskNumber() { // then assertNotNull(commitMessage); assertTrue(commitMessage.contains("TEET-1234")); - assertThat(commitMessage).isEqualTo("git commit -m \"TEET-1234 fix(Report): Add new feature\""); + assertThat(commitMessage).isEqualTo("git commit -m \"TEET-1234 fix(Report): add new feature\""); } }