cmd/tailscale/cli: Add a test for addServiceToPrefs

Signed-off-by: KevinLiang10 <37811973+KevinLiang10@users.noreply.github.com>
This commit is contained in:
KevinLiang10 2025-06-04 13:52:28 -04:00
parent 1ec61b9992
commit 37fbba047b

View File

@ -12,6 +12,7 @@ import (
"os"
"path/filepath"
"reflect"
"slices"
"strconv"
"strings"
"testing"
@ -1180,6 +1181,54 @@ func TestCleanURLPath(t *testing.T) {
}
}
func TestAddServiceToPrefs(t *testing.T) {
tests := []struct {
name string
dnsName string
startServices []string
expected []string
}{
{
name: "add service to empty prefs",
dnsName: "svc:foo",
expected: []string{"svc:foo"},
},
{
name: "add service to existing prefs",
dnsName: "svc:bar",
startServices: []string{"svc:foo"},
expected: []string{"svc:foo", "svc:bar"},
},
{
name: "add existing service to prefs",
dnsName: "svc:foo",
startServices: []string{"svc:foo"},
expected: []string{"svc:foo"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
lc := &fakeLocalServeClient{}
ctx := t.Context()
lc.EditPrefs(ctx, &ipn.MaskedPrefs{
AdvertiseServicesSet: true,
Prefs: ipn.Prefs{
AdvertiseServices: tt.startServices,
},
})
e := &serveEnv{lc: lc, bg: bgBoolFlag{true, false}}
err := e.addServiceToPrefs(ctx, tt.dnsName)
if err != nil {
t.Fatalf("addServiceToPrefs(%q) returned unexpected error: %v", tt.dnsName, err)
}
if !slices.Equal(lc.prefs.AdvertiseServices, tt.expected) {
t.Errorf("addServiceToPrefs(%q) = %v, want %v", tt.dnsName, lc.prefs.AdvertiseServices, tt.expected)
}
})
}
}
func TestMessageForPort(t *testing.T) {
svcIPMap := tailcfg.ServiceIPMappings{
"svc:foo": []netip.Addr{