package capver import ( "testing" "github.com/google/go-cmp/cmp" "tailscale.com/tailcfg" ) func TestTailscaleLatestMajorMinor(t *testing.T) { tests := []struct { n int stripV bool expected []string }{ {3, false, []string{"v1.76", "v1.78", "v1.80"}}, {2, true, []string{"1.78", "1.80"}}, // Lazy way to see all supported versions {10, true, []string{ "1.62", "1.64", "1.66", "1.68", "1.70", "1.72", "1.74", "1.76", "1.78", "1.80", }}, {0, false, nil}, } for _, test := range tests { t.Run("", func(t *testing.T) { output := TailscaleLatestMajorMinor(test.n, test.stripV) if diff := cmp.Diff(output, test.expected); diff != "" { t.Errorf("TailscaleLatestMajorMinor(%d, %v) mismatch (-want +got):\n%s", test.n, test.stripV, diff) } }) } } func TestCapVerMinimumTailscaleVersion(t *testing.T) { tests := []struct { input tailcfg.CapabilityVersion expected string }{ {85, "v1.58.0"}, {90, "v1.64.0"}, {95, "v1.66.0"}, {106, "v1.74.0"}, {109, "v1.78.0"}, {9001, ""}, // Test case for a version higher than any in the map {60, ""}, // Test case for a version lower than any in the map } for _, test := range tests { t.Run("", func(t *testing.T) { output := TailscaleVersion(test.input) if output != test.expected { t.Errorf("CapVerFromTailscaleVersion(%d) = %s; want %s", test.input, output, test.expected) } }) } }