Allow for DNSimple User API tokens to be used by implementing the DNSIMPLE_ACCOUNT_ID and DNSIMPLE_ZONES environment variables

Refactor so that the BuildDnsimpleProvider method can be removed and the NewDnsimpleProvider method be used exclusively instead
This commit is contained in:
Michael Lescisin 2024-03-15 18:28:25 -04:00
parent 487501d923
commit ed3efdb260
2 changed files with 4 additions and 9 deletions

View File

@ -99,12 +99,6 @@ const (
// NewDnsimpleProvider initializes a new Dnsimple based provider
func NewDnsimpleProvider(domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, dryRun bool) (provider.Provider, error) {
return BuildDnsimpleProvider(domainFilter, zoneIDFilter, dryRun)
}
// Create a new Dnsimple based provider returning a *dnsimpleProvider. The *dnsimpleProvider return type is needed for testing purposes
// therefore this method, and not NewDnsimpleProvider, must be the one used by dnsimple_test.go
func BuildDnsimpleProvider(domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, dryRun bool) (*dnsimpleProvider, error) {
oauthToken := os.Getenv("DNSIMPLE_OAUTH")
if len(oauthToken) == 0 {
return nil, fmt.Errorf("no dnsimple oauth token provided")

View File

@ -255,11 +255,12 @@ func TestNewDnsimpleProvider(t *testing.T) {
os.Setenv("DNSIMPLE_OAUTH", "xxxxxxxxxxxxxxxxxxxxxxxxxx")
os.Setenv("DNSIMPLE_ACCOUNT_ID", "12345678")
builtProvider, err := BuildDnsimpleProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true)
providerTypedProvider, err := NewDnsimpleProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true)
dnsimpleTypedProvider := providerTypedProvider.(*dnsimpleProvider)
if err != nil {
t.Errorf("Unexpected error thrown when testing BuildDnsimpleProvider with the DNSIMPLE_ACCOUNT_ID environment variable set")
t.Errorf("Unexpected error thrown when testing NewDnsimpleProvider with the DNSIMPLE_ACCOUNT_ID environment variable set")
}
assert.Equal(t, builtProvider.accountID, "12345678")
assert.Equal(t, dnsimpleTypedProvider.accountID, "12345678")
os.Unsetenv("DNSIMPLE_OAUTH")
os.Unsetenv("DNSIMPLE_ACCOUNT_ID")
}