Skip to content

Commit 5c6f60b

Browse files
test: add main test cases
1 parent 2e7219d commit 5c6f60b

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

main_test.go

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package main
2+
3+
import (
4+
"strings"
5+
"testing"
6+
)
7+
8+
func TestSemanticSummaryIncludesSymbolsFromLargeNewFile(t *testing.T) {
9+
var diff strings.Builder
10+
diff.WriteString("diff --git a/main.go b/main.go\n")
11+
diff.WriteString("new file mode 100644\n")
12+
diff.WriteString("--- /dev/null\n")
13+
diff.WriteString("+++ b/main.go\n")
14+
diff.WriteString("@@ -0,0 +1,220 @@\n")
15+
diff.WriteString("+package main\n")
16+
for i := 0; i < 120; i++ {
17+
diff.WriteString("+// filler line\n")
18+
}
19+
diff.WriteString("+func generateUsefulCommitMessage() string {\n")
20+
diff.WriteString("+\treturn \"ok\"\n")
21+
diff.WriteString("+}\n")
22+
23+
change := FileChange{FileName: "main.go", Status: "??", Diff: diff.String()}
24+
context := buildFileChangeContext(change, 1200)
25+
26+
if !strings.Contains(context, "Change type: new file") {
27+
t.Fatalf("expected new file context, got:\n%s", context)
28+
}
29+
if !strings.Contains(context, "func generateUsefulCommitMessage") {
30+
t.Fatalf("expected semantic symbol from large new file, got:\n%s", context)
31+
}
32+
}
33+
34+
func TestCommitMessageValidationRejectsNullAndGenericSubjects(t *testing.T) {
35+
invalid := []string{
36+
"feat: null handle",
37+
"fix: update files",
38+
"docs: changes",
39+
"add useful context",
40+
}
41+
for _, message := range invalid {
42+
if isUsableCommitMessage(message) {
43+
t.Fatalf("expected %q to be rejected", message)
44+
}
45+
}
46+
47+
if !isUsableCommitMessage("feat: add semantic diff summaries") {
48+
t.Fatal("expected specific conventional subject to be accepted")
49+
}
50+
}
51+
52+
func TestFallbackCommitMessageUsesAreaPrefix(t *testing.T) {
53+
change := FileChange{
54+
FileName: "README.md",
55+
Status: "M",
56+
Diff: "diff --git a/README.md b/README.md\n@@ -1 +1 @@\n-old\n+new\n",
57+
}
58+
59+
message := fallbackCommitMessage([]FileChange{change})
60+
if !strings.HasPrefix(message, "docs:") {
61+
t.Fatalf("expected docs fallback prefix, got %q", message)
62+
}
63+
}

0 commit comments

Comments
 (0)