@@ -599,6 +599,24 @@ func TestClient_DNSSearchPaths(t *testing.T) {
599
599
assert .Equal (t , expectedPaths ["searchPaths" ], paths )
600
600
}
601
601
602
+ func TestClient_SplitDNS (t * testing.T ) {
603
+ t .Parallel ()
604
+
605
+ client , server := NewTestHarness (t )
606
+ server .ResponseCode = http .StatusOK
607
+
608
+ expectedNameservers := tailscale.SplitDnsResponse {
609
+ "example.com" : {"1.1.1.1" , "1.2.3.4" },
610
+ }
611
+
612
+ server .ResponseBody = expectedNameservers
613
+ nameservers , err := client .SplitDNS (context .Background ())
614
+ assert .NoError (t , err )
615
+ assert .Equal (t , http .MethodGet , server .Method )
616
+ assert .Equal (t , "/api/v2/tailnet/example.com/dns/split-dns" , server .Path )
617
+ assert .Equal (t , expectedNameservers , nameservers )
618
+ }
619
+
602
620
func TestClient_SetDNSNameservers (t * testing.T ) {
603
621
t .Parallel ()
604
622
@@ -652,6 +670,53 @@ func TestClient_SetDNSSearchPaths(t *testing.T) {
652
670
assert .EqualValues (t , paths , body ["searchPaths" ])
653
671
}
654
672
673
+ func TestClient_UpdateSplitDNS (t * testing.T ) {
674
+ t .Parallel ()
675
+
676
+ client , server := NewTestHarness (t )
677
+ server .ResponseCode = http .StatusOK
678
+
679
+ nameservers := []string {"1.1.2.1" , "3.3.3.4" }
680
+ request := tailscale.SplitDnsRequest {
681
+ "example.com" : nameservers ,
682
+ }
683
+
684
+ expectedNameservers := tailscale.SplitDnsResponse {
685
+ "example.com" : nameservers ,
686
+ }
687
+ server .ResponseBody = expectedNameservers
688
+
689
+ resp , err := client .UpdateSplitDNS (context .Background (), request )
690
+ assert .NoError (t , err )
691
+ assert .Equal (t , http .MethodPatch , server .Method )
692
+ assert .Equal (t , "/api/v2/tailnet/example.com/dns/split-dns" , server .Path )
693
+
694
+ body := make (tailscale.SplitDnsResponse )
695
+ assert .NoError (t , json .Unmarshal (server .Body .Bytes (), & body ))
696
+ assert .EqualValues (t , nameservers , body ["example.com" ])
697
+ assert .Equal (t , expectedNameservers , resp )
698
+ }
699
+
700
+ func TestClient_SetSplitDNS (t * testing.T ) {
701
+ t .Parallel ()
702
+
703
+ client , server := NewTestHarness (t )
704
+ server .ResponseCode = http .StatusOK
705
+
706
+ nameservers := []string {"1.1.2.1" , "3.3.3.4" }
707
+ request := tailscale.SplitDnsRequest {
708
+ "example.com" : nameservers ,
709
+ }
710
+
711
+ assert .NoError (t , client .SetSplitDNS (context .Background (), request ))
712
+ assert .Equal (t , http .MethodPut , server .Method )
713
+ assert .Equal (t , "/api/v2/tailnet/example.com/dns/split-dns" , server .Path )
714
+
715
+ body := make (tailscale.SplitDnsResponse )
716
+ assert .NoError (t , json .Unmarshal (server .Body .Bytes (), & body ))
717
+ assert .EqualValues (t , nameservers , body ["example.com" ])
718
+ }
719
+
655
720
func TestClient_AuthorizeDevice (t * testing.T ) {
656
721
t .Parallel ()
657
722
0 commit comments