docs format updated
This commit is contained in:
120
api/edge/bff/internal/server/paymentapiimp/documents_test.go
Normal file
120
api/edge/bff/internal/server/paymentapiimp/documents_test.go
Normal file
@@ -0,0 +1,120 @@
|
||||
package paymentapiimp
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/tech/sendico/pkg/mservice"
|
||||
documentsv1 "github.com/tech/sendico/pkg/proto/billing/documents/v1"
|
||||
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
|
||||
connectorv1 "github.com/tech/sendico/pkg/proto/connector/v1"
|
||||
endpointv1 "github.com/tech/sendico/pkg/proto/payments/endpoint/v1"
|
||||
orchestrationv2 "github.com/tech/sendico/pkg/proto/payments/orchestration/v2"
|
||||
quotationv2 "github.com/tech/sendico/pkg/proto/payments/quotation/v2"
|
||||
"go.mongodb.org/mongo-driver/v2/bson"
|
||||
)
|
||||
|
||||
func TestOperationDocumentRequest_UsesStructuredOperationFieldsOnly(t *testing.T) {
|
||||
op := &connectorv1.Operation{
|
||||
OperationRef: "pay-123:hop_1",
|
||||
Type: connectorv1.OperationType_TRANSFER,
|
||||
Status: connectorv1.OperationStatus_OPERATION_SUCCESS,
|
||||
Money: &moneyv1.Money{
|
||||
Amount: "100.50",
|
||||
Currency: "USDT",
|
||||
},
|
||||
}
|
||||
|
||||
req := operationDocumentRequest("org-1", mservice.ChainGateway, "requested-op", "pay-123", op)
|
||||
if req == nil {
|
||||
t.Fatalf("expected request")
|
||||
}
|
||||
|
||||
if got, want := req.GetPaymentRef(), "pay-123"; got != want {
|
||||
t.Fatalf("payment_ref mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
if got := req.GetClientName(); got != "" {
|
||||
t.Fatalf("expected empty client_name from operation-only request, got=%q", got)
|
||||
}
|
||||
if got := req.GetClientAddress(); got != "" {
|
||||
t.Fatalf("expected empty client_address from operation-only request, got=%q", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOperationDocumentRequest_FailureCodeFromStructuredStatus(t *testing.T) {
|
||||
req := operationDocumentRequest("org-1", mservice.ChainGateway, "op", "pay-123", &connectorv1.Operation{
|
||||
OperationRef: "pay-123:hop_1",
|
||||
Type: connectorv1.OperationType_TRANSFER,
|
||||
Status: connectorv1.OperationStatus_OPERATION_FAILED,
|
||||
})
|
||||
if req == nil {
|
||||
t.Fatalf("expected request")
|
||||
}
|
||||
|
||||
if got, want := req.GetFailureCode(), "OPERATION_FAILED"; got != want {
|
||||
t.Fatalf("failure_code mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPaymentClientName_FromIntentComment(t *testing.T) {
|
||||
payment := &orchestrationv2.Payment{
|
||||
IntentSnapshot: "ationv2.QuoteIntent{
|
||||
Comment: "Jane Customer",
|
||||
},
|
||||
}
|
||||
|
||||
if got, want := paymentClientName(payment), "Jane Customer"; got != want {
|
||||
t.Fatalf("paymentClientName mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPaymentClientName_FromStructuredCardEndpoint(t *testing.T) {
|
||||
raw, err := bson.Marshal(map[string]string{
|
||||
"firstName": "Jane",
|
||||
"lastName": "Doe",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("Marshal: %v", err)
|
||||
}
|
||||
|
||||
payment := &orchestrationv2.Payment{
|
||||
IntentSnapshot: "ationv2.QuoteIntent{
|
||||
Destination: &endpointv1.PaymentEndpoint{
|
||||
Source: &endpointv1.PaymentEndpoint_PaymentMethod{
|
||||
PaymentMethod: &endpointv1.PaymentMethod{
|
||||
Type: endpointv1.PaymentMethodType_PAYMENT_METHOD_TYPE_CARD,
|
||||
Data: raw,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if got, want := paymentClientName(payment), "Jane Doe"; got != want {
|
||||
t.Fatalf("paymentClientName mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnrichOperationDocumentRequestFromPayment_SetsClientName(t *testing.T) {
|
||||
req := &documentsv1.GetOperationDocumentRequest{
|
||||
OperationRef: "pay-123:hop_1",
|
||||
}
|
||||
|
||||
payment := &orchestrationv2.Payment{
|
||||
PaymentRef: "pay-123",
|
||||
IntentSnapshot: "ationv2.QuoteIntent{
|
||||
Comment: "Client Name",
|
||||
},
|
||||
}
|
||||
|
||||
enrichOperationDocumentRequestFromPayment(req, payment)
|
||||
if got, want := req.GetPaymentRef(), "pay-123"; got != want {
|
||||
t.Fatalf("payment_ref mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
if got, want := req.GetClientName(), "Client Name"; got != want {
|
||||
t.Fatalf("client_name mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOperationDocumentRequest_Compatibility(t *testing.T) {
|
||||
var _ *documentsv1.GetOperationDocumentRequest = operationDocumentRequest("org-1", mservice.ChainGateway, "op", "pay-1", &connectorv1.Operation{})
|
||||
}
|
||||
Reference in New Issue
Block a user