1package dns
2
3import (
4	"testing"
5
6	"github.com/go-acme/lego/v3/platform/tester"
7	"github.com/go-acme/lego/v3/providers/dns/exec"
8	"github.com/stretchr/testify/assert"
9	"github.com/stretchr/testify/require"
10)
11
12var envTest = tester.NewEnvTest("EXEC_PATH")
13
14func TestKnownDNSProviderSuccess(t *testing.T) {
15	defer envTest.RestoreEnv()
16	envTest.Apply(map[string]string{
17		"EXEC_PATH": "abc",
18	})
19
20	provider, err := NewDNSChallengeProviderByName("exec")
21	require.NoError(t, err)
22	assert.NotNil(t, provider)
23
24	assert.IsType(t, &exec.DNSProvider{}, provider, "The loaded DNS provider doesn't have the expected type.")
25}
26
27func TestKnownDNSProviderError(t *testing.T) {
28	defer envTest.RestoreEnv()
29	envTest.ClearEnv()
30
31	provider, err := NewDNSChallengeProviderByName("exec")
32	assert.Error(t, err)
33	assert.Nil(t, provider)
34}
35
36func TestUnknownDNSProvider(t *testing.T) {
37	provider, err := NewDNSChallengeProviderByName("foobar")
38	assert.Error(t, err)
39	assert.Nil(t, provider)
40}
41