blob: a8bcb0ecca6dee24295b0e26dc18099e5cdb9c51 [file] [log] [blame]
Josh Bleecher Snyderefa8f432025-05-28 18:04:41 -07001package claudetool
2
3import (
4 "testing"
5)
6
7func TestFilterGitTrailers(t *testing.T) {
8 tests := []struct {
9 name string
10 input string
11 expected string
12 }{
13 {
14 name: "filters Co-authored-by",
15 input: `<commit_message_style_example>
16fix: update component
17
18Some description.
19
20Co-authored-by: user@example.com
21</commit_message_style_example>`,
22 expected: `<commit_message_style_example>
23fix: update component
24
25Some description.
26
27</commit_message_style_example>`,
28 },
29 {
30 name: "filters Co-Authored-By",
31 input: `<commit_message_style_example>
32feat: add feature
33
34Co-Authored-By: another@example.com
35</commit_message_style_example>`,
36 expected: `<commit_message_style_example>
37feat: add feature
38
39</commit_message_style_example>`,
40 },
41 {
42 name: "filters Change-ID",
43 input: `<commit_message_style_example>
44docs: update README
45
46Change-ID: I123456789
47</commit_message_style_example>`,
48 expected: `<commit_message_style_example>
49docs: update README
50
51</commit_message_style_example>`,
52 },
53 {
54 name: "filters Change-Id",
55 input: `<commit_message_style_example>
56style: format code
57
58Change-Id: sc987654321
59</commit_message_style_example>`,
60 expected: `<commit_message_style_example>
61style: format code
62
63</commit_message_style_example>`,
64 },
65 {
66 name: "preserves other content",
67 input: `<commit_message_style_example>
68fix: resolve issue
69
70Some detailed explanation.
71With multiple lines.
72</commit_message_style_example>`,
73 expected: `<commit_message_style_example>
74fix: resolve issue
75
76Some detailed explanation.
77With multiple lines.
78</commit_message_style_example>`,
79 },
80 {
81 name: "filters multiple trailers",
82 input: `<commit_message_style_example>
83feat: new feature
84
85Detailed description.
86
87Co-authored-by: user1@example.com
88Co-Authored-By: user2@example.com
89Change-ID: I123
90Change-Id: sc456
91</commit_message_style_example>`,
92 expected: `<commit_message_style_example>
93feat: new feature
94
95Detailed description.
96
97</commit_message_style_example>`,
98 },
99 }
100
101 for _, tt := range tests {
102 t.Run(tt.name, func(t *testing.T) {
103 result := filterGitTrailers(tt.input)
104 if result != tt.expected {
105 t.Errorf("filterGitTrailers() = %q, want %q", result, tt.expected)
106 }
107 })
108 }
109}