|
|
|
|
@ -493,14 +493,16 @@ func TestCheckForAccidentalSettingReverts(t *testing.T) { |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatal(err) |
|
|
|
|
} |
|
|
|
|
applyImplicitPrefs(newPrefs, tt.curPrefs, tt.curUser) |
|
|
|
|
var got string |
|
|
|
|
if err := checkForAccidentalSettingReverts(newPrefs, tt.curPrefs, upCheckEnv{ |
|
|
|
|
upEnv := upCheckEnv{ |
|
|
|
|
goos: goos, |
|
|
|
|
flagSet: flagSet, |
|
|
|
|
curExitNodeIP: tt.curExitNodeIP, |
|
|
|
|
distro: tt.distro, |
|
|
|
|
}); err != nil { |
|
|
|
|
user: tt.curUser, |
|
|
|
|
} |
|
|
|
|
applyImplicitPrefs(newPrefs, tt.curPrefs, upEnv) |
|
|
|
|
var got string |
|
|
|
|
if err := checkForAccidentalSettingReverts(newPrefs, tt.curPrefs, upEnv); err != nil { |
|
|
|
|
got = err.Error() |
|
|
|
|
} |
|
|
|
|
if strings.TrimSpace(got) != tt.want { |
|
|
|
|
@ -784,6 +786,10 @@ func TestUpdatePrefs(t *testing.T) { |
|
|
|
|
curPrefs *ipn.Prefs |
|
|
|
|
env upCheckEnv // empty goos means "linux"
|
|
|
|
|
|
|
|
|
|
// checkUpdatePrefsMutations, if non-nil, is run with the new prefs after
|
|
|
|
|
// updatePrefs might've mutated them (from applyImplicitPrefs).
|
|
|
|
|
checkUpdatePrefsMutations func(t *testing.T, newPrefs *ipn.Prefs) |
|
|
|
|
|
|
|
|
|
wantSimpleUp bool |
|
|
|
|
wantJustEditMP *ipn.MaskedPrefs |
|
|
|
|
wantErrSubtr string |
|
|
|
|
@ -885,6 +891,28 @@ func TestUpdatePrefs(t *testing.T) { |
|
|
|
|
}, |
|
|
|
|
env: upCheckEnv{backendState: "Running"}, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
// Issue 3808: explicitly empty --operator= should clear value.
|
|
|
|
|
name: "explicit_empty_operator", |
|
|
|
|
flags: []string{"--operator="}, |
|
|
|
|
curPrefs: &ipn.Prefs{ |
|
|
|
|
ControlURL: "https://login.tailscale.com", |
|
|
|
|
CorpDNS: true, |
|
|
|
|
AllowSingleHosts: true, |
|
|
|
|
NetfilterMode: preftype.NetfilterOn, |
|
|
|
|
OperatorUser: "somebody", |
|
|
|
|
}, |
|
|
|
|
env: upCheckEnv{user: "somebody", backendState: "Running"}, |
|
|
|
|
wantJustEditMP: &ipn.MaskedPrefs{ |
|
|
|
|
OperatorUserSet: true, |
|
|
|
|
WantRunningSet: true, |
|
|
|
|
}, |
|
|
|
|
checkUpdatePrefsMutations: func(t *testing.T, prefs *ipn.Prefs) { |
|
|
|
|
if prefs.OperatorUser != "" { |
|
|
|
|
t.Errorf("operator sent to backend should be empty; got %q", prefs.OperatorUser) |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
for _, tt := range tests { |
|
|
|
|
t.Run(tt.name, func(t *testing.T) { |
|
|
|
|
@ -909,6 +937,9 @@ func TestUpdatePrefs(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
t.Fatal(err) |
|
|
|
|
} |
|
|
|
|
if tt.checkUpdatePrefsMutations != nil { |
|
|
|
|
tt.checkUpdatePrefsMutations(t, newPrefs) |
|
|
|
|
} |
|
|
|
|
if simpleUp != tt.wantSimpleUp { |
|
|
|
|
t.Fatalf("simpleUp=%v, want %v", simpleUp, tt.wantSimpleUp) |
|
|
|
|
} |
|
|
|
|
|