1package edgedns 2 3import ( 4 "fmt" 5 "testing" 6 "time" 7 8 configdns "github.com/akamai/AkamaiOPEN-edgegrid-golang/configdns-v2" 9 "github.com/go-acme/lego/v4/challenge/dns01" 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12) 13 14func TestLivePresent(t *testing.T) { 15 if !envTest.IsLiveTest() { 16 t.Skip("skipping live test") 17 } 18 19 envTest.RestoreEnv() 20 provider, err := NewDNSProvider() 21 require.NoError(t, err) 22 23 err = provider.Present(envTest.GetDomain(), "", "123d==") 24 require.NoError(t, err) 25 26 // Present Twice to handle create / update 27 err = provider.Present(envTest.GetDomain(), "", "123d==") 28 require.NoError(t, err) 29} 30 31func TestLiveCleanUp(t *testing.T) { 32 if !envTest.IsLiveTest() { 33 t.Skip("skipping live test") 34 } 35 36 envTest.RestoreEnv() 37 provider, err := NewDNSProvider() 38 require.NoError(t, err) 39 40 time.Sleep(1 * time.Second) 41 42 err = provider.CleanUp(envTest.GetDomain(), "", "123d==") 43 require.NoError(t, err) 44} 45 46func TestLiveTTL(t *testing.T) { 47 if !envTest.IsLiveTest() { 48 t.Skip("skipping live test") 49 } 50 51 envTest.RestoreEnv() 52 53 provider, err := NewDNSProvider() 54 require.NoError(t, err) 55 56 domain := envTest.GetDomain() 57 58 err = provider.Present(domain, "foo", "bar") 59 require.NoError(t, err) 60 61 defer func() { 62 e := provider.CleanUp(domain, "foo", "bar") 63 if e != nil { 64 t.Log(e) 65 } 66 }() 67 68 fqdn := "_acme-challenge." + domain + "." 69 zone, err := findZone(domain) 70 require.NoError(t, err) 71 72 resourceRecordSets, err := configdns.GetRecordList(zone, fqdn, "TXT") 73 require.NoError(t, err) 74 75 for i, rrset := range resourceRecordSets.Recordsets { 76 if rrset.Name != fqdn { 77 continue 78 } 79 80 t.Run(fmt.Sprintf("testing record set %d", i), func(t *testing.T) { 81 assert.Equal(t, rrset.Name, fqdn) 82 assert.Equal(t, rrset.Type, "TXT") 83 assert.Equal(t, rrset.TTL, dns01.DefaultTTL) 84 }) 85 } 86} 87