Files
godeez/internal/update/apply_test.go
T

44 lines
1.0 KiB
Go

package update
import (
"strings"
"testing"
)
func TestParseChecksums(t *testing.T) {
checksums := `ABCDEF0123 godeez_1.0.0_darwin_arm64
deadbeef *godeez_1.0.0_linux_amd64
malformed-line
one two three
cafebabe godeez_1.0.0_windows_amd64.exe
`
tests := []struct {
name string
asset string
want string
}{
{"plain name lowercased", "godeez_1.0.0_darwin_arm64", "abcdef0123"},
{"star-prefixed name", "godeez_1.0.0_linux_amd64", "deadbeef"},
{"windows asset", "godeez_1.0.0_windows_amd64.exe", "cafebabe"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := parseChecksums(strings.NewReader(checksums), tt.asset)
if err != nil {
t.Fatalf("parseChecksums: %v", err)
}
if got != tt.want {
t.Errorf("parseChecksums() = %q, want %q", got, tt.want)
}
})
}
}
func TestParseChecksumsMissing(t *testing.T) {
if _, err := parseChecksums(strings.NewReader("abc other_asset\n"), "godeez_1.0.0_darwin_arm64"); err == nil {
t.Error("expected error for missing asset name")
}
}