Skip to content

Commit 1d0316d

Browse files
committed
fix: replace real DNS queries with mock resolver in timeout test
1 parent 21ef581 commit 1d0316d

File tree

1 file changed

+27
-18
lines changed

1 file changed

+27
-18
lines changed

internal/verification/dns_test.go

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ func TestVerifyDNSRecordSuccess(t *testing.T) {
1818
t.Fatalf("Failed to generate test token: %v", err)
1919
}
2020

21-
domain := "example.com"
22-
21+
domain := testDomain
22+
2323
// Create mock resolver with the verification token
2424
mockResolver := verification.NewMockDNSResolver()
2525
mockResolver.SetVerificationToken(domain, token)
26-
26+
2727
// Use custom config with mock resolver
2828
config := verification.DefaultDNSConfig()
2929
config.Resolver = mockResolver
30-
30+
3131
result, err := verification.VerifyDNSRecordWithConfig(domain, token, config)
3232
if err != nil {
3333
t.Errorf("VerifyDNSRecord returned unexpected error: %v", err)
@@ -67,16 +67,16 @@ func TestVerifyDNSRecordTokenNotFound(t *testing.T) {
6767
t.Fatalf("Failed to generate test token: %v", err)
6868
}
6969

70-
domain := "example.com"
71-
70+
domain := testDomain
71+
7272
// Create mock resolver with different TXT records (no verification token)
7373
mockResolver := verification.NewMockDNSResolver()
7474
mockResolver.SetTXTRecord(domain, "v=spf1 -all", "some-other-record")
75-
75+
7676
// Use custom config with mock resolver
7777
config := verification.DefaultDNSConfig()
7878
config.Resolver = mockResolver
79-
79+
8080
result, err := verification.VerifyDNSRecordWithConfig(domain, token, config)
8181
if err != nil {
8282
t.Errorf("VerifyDNSRecord returned unexpected error: %v", err)
@@ -127,14 +127,14 @@ func TestVerifyDNSRecordInvalidInputs(t *testing.T) {
127127
},
128128
{
129129
name: "empty token",
130-
domain: "example.com",
130+
domain: testDomain,
131131
token: "",
132132
expectError: true,
133133
errorContains: "token cannot be empty",
134134
},
135135
{
136136
name: "invalid token format",
137-
domain: "example.com",
137+
domain: testDomain,
138138
token: "invalid-token!@#",
139139
expectError: true,
140140
errorContains: "invalid token format",
@@ -168,16 +168,16 @@ func TestVerifyDNSRecordTokenFormatValidation(t *testing.T) {
168168
t.Fatalf("Failed to generate test token: %v", err)
169169
}
170170

171-
domain := "example.com"
172-
171+
domain := testDomain
172+
173173
// Create mock resolver with the verification token
174174
mockResolver := verification.NewMockDNSResolver()
175175
mockResolver.SetVerificationToken(domain, token)
176-
176+
177177
// Use custom config with mock resolver
178178
config := verification.DefaultDNSConfig()
179179
config.Resolver = mockResolver
180-
180+
181181
result, err := verification.VerifyDNSRecordWithConfig(domain, token, config)
182182

183183
if err != nil {
@@ -212,21 +212,30 @@ func TestVerifyDNSRecordWithConfigTimeout(t *testing.T) {
212212
t.Fatalf("Failed to generate test token: %v", err)
213213
}
214214

215+
// Create mock resolver that simulates a timeout
216+
mockResolver := verification.NewMockDNSResolver()
217+
mockResolver.Delay = 200 * time.Millisecond // Longer than the config timeout
218+
215219
config := &verification.DNSVerificationConfig{
216220
Timeout: 100 * time.Millisecond,
217221
MaxRetries: 0,
218222
RetryDelay: 0,
219223
UseSecureResolvers: false,
220224
CustomResolvers: []string{},
225+
Resolver: mockResolver,
221226
}
222227

223-
domain := "non-existent-domain-that-should-timeout.com"
228+
domain := testDomain
224229
result, err := verification.VerifyDNSRecordWithConfig(domain, token, config)
225230

226231
if err == nil {
227-
t.Log("DNS query succeeded unexpectedly")
232+
t.Error("Expected timeout error but got none")
228233
} else {
229234
t.Logf("DNS query failed as expected: %v", err)
235+
// Verify it's a context timeout error
236+
if !strings.Contains(err.Error(), "context deadline exceeded") {
237+
t.Errorf("Expected context deadline exceeded error, got: %v", err)
238+
}
230239
}
231240

232241
if result == nil {
@@ -273,14 +282,14 @@ func TestDefaultDNSConfig(t *testing.T) {
273282
func TestDNSVerificationError(t *testing.T) {
274283
baseErr := errors.New("base network error")
275284
dnsErr := &verification.DNSVerificationError{
276-
Domain: "example.com",
285+
Domain: testDomain,
277286
Token: "test-token",
278287
Message: "DNS query failed",
279288
Cause: baseErr,
280289
}
281290

282291
errMsg := dnsErr.Error()
283-
if !strings.Contains(errMsg, "example.com") {
292+
if !strings.Contains(errMsg, testDomain) {
284293
t.Errorf("Error message should contain domain: %s", errMsg)
285294
}
286295

0 commit comments

Comments
 (0)