package version import "testing" func TestShouldUpdate(t *testing.T) { cases := []struct { server, agent string want bool }{ {"v0.5.0", "v0.4.0", true}, {"v0.5.0", "v0.5.0", false}, {"v0.4.0", "v0.5.0", false}, // без отката {"v0.10.0", "v0.9.3", true}, // числа, а не строки {"v1.0.0", "dev", true}, {"v1.0.0", "main-abc123", true}, {"dev", "v0.1.0", false}, // dev-сервер не раздаёт обновления {"main-abc", "dev", false}, {"v0.5.1-rc1", "v0.5.0", true}, } for _, c := range cases { if got := ShouldUpdate(c.server, c.agent); got != c.want { t.Errorf("ShouldUpdate(%q, %q) = %v, want %v", c.server, c.agent, got, c.want) } } }