main
go 61 lines 1.61 KB
Raw
1 package vultr
2
3 import (
4 "context"
5 "testing"
6 )
7
8 func TestChallengeProviderRequiresAPIKey(t *testing.T) {
9 t.Parallel()
10
11 provider := New("")
12 challengeProvider, err := provider.ChallengeProvider(context.Background())
13 if challengeProvider != nil {
14 t.Fatalf("ChallengeProvider() provider = %T, want nil", challengeProvider)
15 }
16 if err == nil || err.Error() != "vultr api key is required" {
17 t.Fatalf("ChallengeProvider() error = %v, want local api key error", err)
18 }
19 }
20
21 func TestRelativeRecordName(t *testing.T) {
22 t.Parallel()
23
24 testCases := []struct {
25 name string
26 fqdn string
27 want string
28 }{
29 {name: "apex", fqdn: "example.com", want: "@"},
30 {name: "subdomain", fqdn: "portal.example.com", want: "portal"},
31 {name: "wildcard", fqdn: "*.example.com", want: "*"},
32 {name: "nested", fqdn: "_ens.portal.example.com", want: "_ens.portal"},
33 }
34
35 for _, tc := range testCases {
36 t.Run(tc.name, func(t *testing.T) {
37 t.Parallel()
38
39 got, err := relativeRecordName(tc.fqdn, "example.com")
40 if err != nil {
41 t.Fatalf("relativeRecordName() error = %v", err)
42 }
43 if got != tc.want {
44 t.Fatalf("relativeRecordName() = %q, want %q", got, tc.want)
45 }
46 })
47 }
48 }
49
50 func TestPreferredDSRecordPrefersSHA256(t *testing.T) {
51 t.Parallel()
52
53 got := preferredDSRecord([]string{
54 "example.com IN DNSKEY 257 3 13 abc",
55 "example.com IN DS 27933 13 1 2d9ac457e5c11a104e25d971d0a6254562bddde7",
56 "example.com IN DS 27933 13 2 8858e7b0dfb881280ce2ca1e0eafcd93d5b53687c21da284d4f8799ba82208a9",
57 })
58 if got != "27933 13 2 8858e7b0dfb881280ce2ca1e0eafcd93d5b53687c21da284d4f8799ba82208a9" {
59 t.Fatalf("preferredDSRecord() = %q", got)
60 }
61 }