@@ -599,6 +599,24 @@ func TestClient_DNSSearchPaths(t *testing.T) {
599599 assert .Equal (t , expectedPaths ["searchPaths" ], paths )
600600}
601601
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+
602620func TestClient_SetDNSNameservers (t * testing.T ) {
603621 t .Parallel ()
604622
@@ -652,6 +670,53 @@ func TestClient_SetDNSSearchPaths(t *testing.T) {
652670 assert .EqualValues (t , paths , body ["searchPaths" ])
653671}
654672
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+
655720func TestClient_AuthorizeDevice (t * testing.T ) {
656721 t .Parallel ()
657722
0 commit comments