54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package srequest
|
|
|
|
import "testing"
|
|
|
|
func TestValidateQuoteIdempotency(t *testing.T) {
|
|
t.Run("non-preview requires idempotency key", func(t *testing.T) {
|
|
if err := validateQuoteIdempotency(false, ""); err == nil {
|
|
t.Fatalf("expected error for empty idempotency key")
|
|
}
|
|
})
|
|
|
|
t.Run("preview rejects idempotency key", func(t *testing.T) {
|
|
if err := validateQuoteIdempotency(true, "idem-1"); err == nil {
|
|
t.Fatalf("expected error when preview request has idempotency key")
|
|
}
|
|
})
|
|
|
|
t.Run("preview accepts empty idempotency key", func(t *testing.T) {
|
|
if err := validateQuoteIdempotency(true, ""); err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
})
|
|
|
|
t.Run("non-preview accepts idempotency key", func(t *testing.T) {
|
|
if err := validateQuoteIdempotency(false, "idem-1"); err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestInitiatePaymentsValidate(t *testing.T) {
|
|
t.Run("accepts quoteRef", func(t *testing.T) {
|
|
req := &InitiatePayments{
|
|
PaymentBase: PaymentBase{IdempotencyKey: "idem-1"},
|
|
QuoteRef: " quote-1 ",
|
|
}
|
|
if err := req.Validate(); err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
if got, want := req.QuoteRef, "quote-1"; got != want {
|
|
t.Fatalf("quoteRef mismatch: got=%q want=%q", got, want)
|
|
}
|
|
})
|
|
|
|
t.Run("rejects missing quoteRef", func(t *testing.T) {
|
|
req := &InitiatePayments{
|
|
PaymentBase: PaymentBase{IdempotencyKey: "idem-1"},
|
|
}
|
|
if err := req.Validate(); err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
})
|
|
}
|