package internal import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) const fakeAPIKey = "asdf1234" func TestClient_buildQuery(t *testing.T) { testCases := []struct { desc string apiKey string baseURL string action string domain string txt string expected string }{ { desc: "success", apiKey: fakeAPIKey, action: cmdAddRecord, domain: "domain", txt: "TXTtxtTXT", expected: "https://api.dreamhost.com?cmd=dns-add_record&comment=Managed%2BBy%2Blego&format=json&key=asdf1234&record=domain&type=TXT&value=TXTtxtTXT", }, { desc: "Invalid base URL", apiKey: fakeAPIKey, baseURL: ":", action: cmdAddRecord, domain: "domain", txt: "TXTtxtTXT", }, } for _, test := range testCases { test := test t.Run(test.desc, func(t *testing.T) { t.Parallel() client := NewClient(test.apiKey) if test.baseURL != "" { client.BaseURL = test.baseURL } endpoint, err := client.buildEndpoint(test.action, test.domain, test.txt) if test.expected == "" { require.Error(t, err) } else { require.NoError(t, err) assert.Equal(t, test.expected, endpoint.String()) } }) } }