package host import ( "errors" "testing" ) func envFunc(m map[string]string) func(string) string { return func(k string) string { return m[k] } } func TestResolveFleetIdentityNotAFleetBox(t *testing.T) { _, err := resolveFleetIdentity(envFunc(map[string]string{})) if !errors.Is(err, errNotFleetBox) { t.Fatalf("err = %v, want errNotFleetBox", err) } // Explicitly empty is the same as unset. _, err = resolveFleetIdentity(envFunc(map[string]string{"CARLOS_FLEET": ""})) if !errors.Is(err, errNotFleetBox) { t.Fatalf("err = %v, want errNotFleetBox for empty CARLOS_FLEET", err) } } func TestResolveFleetIdentityExplicitBoxLabel(t *testing.T) { id, err := resolveFleetIdentity(envFunc(map[string]string{ "CARLOS_FLEET": "pi", "CARLOS_FLEET_BOX": "amber-gliding", })) if err != nil { t.Fatalf("resolveFleetIdentity: %v", err) } if id.Fleet != "pi" || id.Label != "amber-gliding" { t.Fatalf("id = %+v, want {pi amber-gliding}", id) } } func TestResolveFleetIdentityDefaultsLabelFromTunnelName(t *testing.T) { id, err := resolveFleetIdentity(envFunc(map[string]string{ "CARLOS_FLEET": "pi", "CARLOS_TUNNEL_NAME": "pi/amber-gliding", })) if err != nil { t.Fatalf("resolveFleetIdentity: %v", err) } if id.Fleet != "pi" || id.Label != "amber-gliding" { t.Fatalf("id = %+v, want {pi amber-gliding}", id) } } // An explicit CARLOS_FLEET_BOX must win over CARLOS_TUNNEL_NAME's derived // value — the explicit override is the reliable path the doc comment names // for anything the standard "/