84 lines
2.2 KiB
Go
84 lines
2.2 KiB
Go
package healthcheck
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestCheckMsg(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
message string
|
|
expected bool
|
|
}{
|
|
{
|
|
name: "Valid ASCII message",
|
|
message: "This is a valid commit message",
|
|
expected: true,
|
|
},
|
|
{
|
|
name: "Message with non-ASCII character",
|
|
message: "This message contains a non-ASCII character: é",
|
|
expected: false,
|
|
},
|
|
{
|
|
name: "Message with ignored prefix",
|
|
message: "First line\nCo-authored-by: John Doe <john@example.com>\nThis is a valid message",
|
|
expected: true,
|
|
},
|
|
{
|
|
name: "Message with ignored prefix and non-ASCII character in content",
|
|
message: "First line\nCo-authored-by: John Doe <john@example.com>\nThis message has a non-ASCII character: ñ",
|
|
expected: false,
|
|
},
|
|
{
|
|
name: "Message with ignored prefix in the first line",
|
|
message: "Co-authored-by: Jöhn Döe <john@example.com>",
|
|
expected: false,
|
|
},
|
|
{
|
|
name: "Multi-line message with all valid ASCII",
|
|
message: "First line\nSecond line\nThird line",
|
|
expected: true,
|
|
},
|
|
{
|
|
name: "Multi-line message with non-ASCII in middle",
|
|
message: "First line\nSecond line with ö\nThird line",
|
|
expected: false,
|
|
},
|
|
{
|
|
name: "Multi-line message with non-ASCII in the first line",
|
|
message: "First line with ö\nSecond line",
|
|
expected: false,
|
|
},
|
|
{
|
|
name: "Message with multiple ignored prefixes",
|
|
message: "First line\nCo-authored-by: John Doe <john@example.com>\nReviewed-by: Jane Smith <jane@example.com>\nValid content",
|
|
expected: true,
|
|
},
|
|
{
|
|
name: "Empty message",
|
|
message: "",
|
|
expected: true,
|
|
},
|
|
{
|
|
name: "Message with only whitespace",
|
|
message: " \n \t ",
|
|
expected: true,
|
|
},
|
|
{
|
|
name: "Message with non-ASCII after ignored prefix",
|
|
message: "First line\nCo-authored-by: John Doe <john@example.com>\nReviewed-by: Jöhn Döe <john@example.com>",
|
|
expected: true,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
result := checkMsg(tt.message)
|
|
if result != tt.expected {
|
|
t.Errorf("checkMsg(%q) = %v, want %v", tt.message, result, tt.expected)
|
|
}
|
|
})
|
|
}
|
|
}
|