(t *testing.T)
| 593 | return |
| 594 | } |
| 595 | if !strings.Contains(err.Error(), "unsupported ACME DNS provider") { |
| 596 | t.Fatalf("expected unsupported provider error, got: %v", err) |
| 597 | } |
| 598 | } |
| 599 | |
| 600 | func TestNewRejectsACMEDNSProviderWithoutDomain(t *testing.T) { |
| 601 | _, err := New(Config{ |
| 602 | ACMEDNSProvider: "route53", |
| 603 | }) |
| 604 | if err == nil { |
| 605 | t.Fatal("expected error when ACME DNS provider is set without ACME domain") |
| 606 | return |
| 607 | } |
| 608 | if !strings.Contains(err.Error(), "ACME DNS provider requires ACME domain") { |
| 609 | t.Fatalf("expected missing domain error, got: %v", err) |
| 610 | } |
| 611 | } |
| 612 | |
| 613 | func TestStartCredentialRefresh_RollbackAndRetryWhenNoActiveTransaction(t *testing.T) { |
| 614 | oldInterval := credentialRefreshInterval |
| 615 | credentialRefreshInterval = 5 * time.Millisecond |
| 616 | defer func() { credentialRefreshInterval = oldInterval }() |
| 617 | |
| 618 | execer := &mockRefreshExecer{ |
| 619 | secretErrFn: func(callNum int) error { |
| 620 | if callNum == 1 { |
| 621 | return errors.New("TransactionContext Error: Current transaction is aborted (please ROLLBACK)") |
| 622 | } |
| 623 | return nil |
| 624 | }, |
| 625 | } |
| 626 | |
| 627 | stop := StartCredentialRefresh(execer, DuckLakeConfig{ |
| 628 | ObjectStore: "s3://bucket/path/", |
| 629 | S3Provider: "credential_chain", |
| 630 | }, func() bool { return false }) |
| 631 | |
| 632 | waitForCalls(t, 250*time.Millisecond, func() bool { |
| 633 | secretCalls, rollbackCalls := execer.calls() |
nothing calls this directly
no test coverage detected