Smail/server/internal/buildinfo/buildinfo_test.go
smail dd04bdb49e
Some checks are pending
Security Checks / security (push) Waiting to run
完成安全整改、配置重构与邮件认证优化
2026-08-28 14:33:13 +08:00

44 lines
1.4 KiB
Go

package buildinfo
import "testing"
func TestCurrentUsesSafeDefaults(t *testing.T) {
oldVersion, oldHash := Version, GitHash
t.Cleanup(func() {
Version, GitHash = oldVersion, oldHash
})
Version = ""
GitHash = ""
info := Current()
if info.Version != "dev" || info.GitHash != "unknown" {
t.Fatalf("unexpected defaults: %+v", info)
}
}
func TestValidatePairRequiresMatchingBuildMetadata(t *testing.T) {
base := Info{Version: "v1.2.3", GitHash: "abc", ProtocolVersion: ProtocolVersion}
cases := []struct {
name string
main Info
admin Info
want error
}{
{name: "matching", main: base, admin: base},
{name: "version mismatch", main: base, admin: Info{Version: "v1.2.4", GitHash: "abc", ProtocolVersion: ProtocolVersion}, want: ErrVersionMismatch},
{name: "protocol mismatch", main: base, admin: Info{Version: "v1.2.3", GitHash: "abc", ProtocolVersion: ProtocolVersion + 1}, want: ErrProtocolMismatch},
{name: "build mismatch", main: base, admin: Info{Version: "v1.2.3", GitHash: "def", ProtocolVersion: ProtocolVersion}, want: ErrBuildMismatch},
}
for _, test := range cases {
t.Run(test.name, func(t *testing.T) {
err := ValidatePair(test.main, test.admin)
if test.want == nil && err != nil {
t.Fatalf("ValidatePair() error = %v", err)
}
if test.want != nil && err != test.want {
t.Fatalf("ValidatePair() error = %v, want %v", err, test.want)
}
})
}
}