Skip to content

test(coverage/r2): drive storageprovider/r2 to ≥95%#27

Merged
mastermanas805 merged 1 commit into
masterfrom
coverage/r2-95
May 21, 2026
Merged

test(coverage/r2): drive storageprovider/r2 to ≥95%#27
mastermanas805 merged 1 commit into
masterfrom
coverage/r2-95

Conversation

@mastermanas805
Copy link
Copy Markdown
Member

Summary

  • Adds r2_coverage_test.go covering uncovered branches in common/storageprovider/r2.
  • Coverage: 69.6% → 95.5% (baseline this branch saw; meets the ≥95% target).
  • Only touches storageprovider/r2/ (one new test file).

What's covered

  • Name(), accessor getters (Master*, Endpoint, Bucket, PublicURL)
  • New() master-key validation + endpoint/bucket default branches
  • apiBase() default branch
  • IssueTenantCredentials: empty-prefix fallback, bucket override, trailing-slash strip
  • issueLongLivedKey: HTTP error, invalid JSON, success=false, transport error
  • issueTempCreds: HTTP error, invalid JSON, success=false, unparseable expiry, empty expiry, transport error
  • RevokeTenantCredentials: HTTP error, 404 idempotency, transport error
  • customerEndpointURL: publicURL-set + scheme-already-present
  • init() registration via storageprovider.Factory

Remaining uncovered statements are defensive json.Marshal / http.NewRequestWithContext failure paths that aren't reachable without injecting a broken stdlib.

Test plan

  • go test ./storageprovider/r2 -coverprofile=/tmp/r2-cov.out → 95.5%
  • go test ./... → all packages PASS
  • go vet ./storageprovider/r2 → clean

🤖 Generated with Claude Code

Adds r2_coverage_test.go covering uncovered branches: Name(), accessor
methods (MasterAccessKey/MasterSecretKey/Endpoint/Bucket/PublicURL), New()
master-key validation + endpoint/bucket defaults, apiBase() default branch,
IssueTenantCredentials empty-prefix fallback + bucket override + trailing
slash stripping, issueLongLivedKey HTTP error / invalid JSON / success=false
/ transport error, issueTempCreds HTTP error / invalid JSON / success=false
/ unparseable expiry / empty expiry / transport error, RevokeTenantCredentials
HTTP error / 404 idempotency / transport error, customerEndpointURL public-URL
+ scheme-already-present branches, plus init() registration via storageprovider.Factory.

Coverage: 69.6% → 95.5%. Remaining uncovered statements are defensive
json.Marshal / http.NewRequestWithContext failure paths that aren't
reachable without injecting a broken stdlib.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mastermanas805 mastermanas805 merged commit 0469b53 into master May 21, 2026
9 checks passed
@mastermanas805 mastermanas805 deleted the coverage/r2-95 branch May 21, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant