Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public String generateCommit(
) CommitQuickRequest commitQuickRequest) {
return commitQuickService.generateQuickCommit(
commitQuickRequest.topicScope(),
commitQuickRequest.message(),
commitQuickRequest.isGitCommand()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

record CommitQuickRequest(
String topicScope,
String message,
boolean isGitCommand
) {
}
26 changes: 17 additions & 9 deletions src/main/java/pl/commit/craft/quick/CommitQuickService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,35 +34,35 @@ 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)
.content(objectMapper.writeValueAsString(commitQuickRequest)))
.andExpect(status().isOk())
.andExpect(content().string(expectedCommitMessage));

verify(commitQuickService, times(1)).generateQuickCommit(topicScope, isGitCommand);
verify(commitQuickService, times(1)).generateQuickCommit(topicScope, null, isGitCommand);
}

@Test
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)
.content(objectMapper.writeValueAsString(commitQuickRequest)))
.andExpect(status().isOk())
.andExpect(content().string("Invalid commit"));

verify(commitQuickService, times(1)).generateQuickCommit(topicScope, isGitCommand);
verify(commitQuickService, times(1)).generateQuickCommit(topicScope, null, isGitCommand);
}
}
38 changes: 22 additions & 16 deletions src/test/java/pl/commit/craft/quick/CommitQuickServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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\"");
}
}