42 lines
1.3 KiB
Go
42 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
// A pairing whose file this build will not serve reads "invalid" on the
|
|
// console, as it does on the setup page and in `status`, even when the state
|
|
// stored in the file is empty, the old spelling of active.
|
|
func TestTheConsoleShowsAPairingThatIsNotServedAsInvalid(t *testing.T) {
|
|
const host = "unserved.host.privatae.ai"
|
|
uiTestConfigDir(t)
|
|
pd, err := pairingsDir()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.MkdirAll(pd, 0o700); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
b, _ := json.Marshal(Config{HostName: host, ListenAddr: "127.0.0.1:59999",
|
|
Endpoint: "203.0.113.7:51820\nallowed_ip=::/0"}) // one the endpoint check refuses
|
|
if err := os.WriteFile(filepath.Join(pd, host+".json"), b, 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var got []string
|
|
for _, p := range collectUIStatus().Pairings {
|
|
got = append(got, p.Host+"="+p.State)
|
|
}
|
|
if want := host + "=" + pairingInvalid; len(got) != 1 || got[0] != want {
|
|
t.Errorf("the console reads %v, want [%s]", got, want)
|
|
}
|
|
u := uiTestServer(t)
|
|
body := uiSetupGet(t, u.handler(), "/fragments/status", uiSignedIn(t, u)).Body.String()
|
|
if !strings.Contains(body, "invalid, not served") {
|
|
t.Errorf("the console page does not say the pairing is not served: %q", body)
|
|
}
|
|
}
|