From 6808aa319848f51a800a0c0c6f42d36207501940 Mon Sep 17 00:00:00 2001 From: Mikhail Rozentsvayg Date: Wed, 2 Apr 2025 10:09:00 -0700 Subject: [PATCH] add test for logging error when creating endpoint and ignoring too long record name (shouldn't happen) --- .gitignore | 1 + provider/cloudflare/cloudflare_test.go | 27 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.gitignore b/.gitignore index 3907ba757..29561b906 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ # Vscode files .vscode +__debug_* # This is where the result of the go build goes /output*/ diff --git a/provider/cloudflare/cloudflare_test.go b/provider/cloudflare/cloudflare_test.go index 5fb6699d0..4f3024bbb 100644 --- a/provider/cloudflare/cloudflare_test.go +++ b/provider/cloudflare/cloudflare_test.go @@ -1762,6 +1762,33 @@ func TestCloudflareZoneRecordsFail(t *testing.T) { } } +// TestCloudflareLongRecordsErrorLog checks if the error is logged when a record name exceeds 63 characters +// it's not likely to happen in practice, as the Cloudflare API should reject having it +func TestCloudflareLongRecordsErrorLog(t *testing.T) { + client := NewMockCloudFlareClientWithRecords(map[string][]cloudflare.DNSRecord{ + "001": { + { + ID: "1234567890", + Name: "very-very-very-very-very-very-very-long-name-more-than-63-bytes-long.bar.com", + Type: endpoint.RecordTypeTXT, + TTL: 120, + Content: "some-content", + }, + }, + }) + b := testutils.LogsToBuffer(log.InfoLevel, t) + p := &CloudFlareProvider{ + Client: client, + CustomHostnamesConfig: CustomHostnamesConfig{Enabled: true}, + } + ctx := context.Background() + _, err := p.Records(ctx) + if err != nil { + t.Errorf("should not fail - too long record, %s", err) + } + assert.Contains(t, b.String(), "is longer than 63 characters. Cannot create endpoint") +} + // check if the error is expected func checkFailed(name string, err error, shouldFail bool) error { if errors.Is(err, nil) && shouldFail {