Add more tests for Direct.
"testing"
"tailscale.com/tailcfg"
+ "tailscale.com/types/wgkey"
)
func TestUndeltaPeers(t *testing.T) {
@@ -91,3 +92,67 @@ func formatNodes(nodes []*tailcfg.Node) string {
}
return sb.String()
}
+
+func TestNewDirect(t *testing.T) {
+ hi := NewHostinfo()
+ ni := tailcfg.NetInfo{LinkType: "wired"}
+ hi.NetInfo = &ni
+
+ key, err := wgkey.NewPrivate()
+ if err != nil {
+ t.Error(err)
+ }
+ opts := Options{ServerURL: "https://example.com", MachinePrivateKey: key, Hostinfo: hi}
+ c, err := NewDirect(opts)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if c.serverURL != opts.ServerURL {
+ t.Errorf("c.serverURL got %v want %v", c.serverURL, opts.ServerURL)
+ }
+
+ if !hi.Equal(c.hostinfo) {
+ t.Errorf("c.hostinfo got %v want %v", c.hostinfo, hi)
+ }
+
+ changed := c.SetNetInfo(&ni)
+ if changed {
+ t.Errorf("c.SetNetInfo(ni) want false got %v", changed)
+ }
+ ni = tailcfg.NetInfo{LinkType: "wifi"}
+ changed = c.SetNetInfo(&ni)
+ if !changed {
+ t.Errorf("c.SetNetInfo(ni) want true got %v", changed)
+ }
+
+ changed = c.SetHostinfo(hi)
+ if changed {
+ t.Errorf("c.SetHostinfo(hi) want false got %v", changed)
+ }
+ hi = NewHostinfo()
+ hi.Hostname = "different host name"
+ changed = c.SetHostinfo(hi)
+ if !changed {
+ t.Errorf("c.SetHostinfo(hi) want true got %v", changed)
+ }
+
+ endpoints := []string{"1", "2", "3"}
+ changed = c.newEndpoints(12, endpoints)
+ if !changed {
+ t.Errorf("c.newEndpoints(12) want true got %v", changed)
+ }
+ changed = c.newEndpoints(12, endpoints)
+ if changed {
+ t.Errorf("c.newEndpoints(12) want false got %v", changed)
+ }
+ changed = c.newEndpoints(13, endpoints)
+ if !changed {
+ t.Errorf("c.newEndpoints(13) want true got %v", changed)
+ }
+ endpoints = []string{"4", "5", "6"}
+ changed = c.newEndpoints(13, endpoints)
+ if !changed {
+ t.Errorf("c.newEndpoints(13) want true got %v", changed)
+ }
+}
