Bootstrap copied BFF and local accounts with public Sendico contracts (#34)

This commit is contained in:
Stephan D committed 2026-09-12 13:37:48 +02:00
1 parent 67dc5b5b1e
commit 7062672a87
556 files changed
+42291 -777

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
package model
import (
"testing"
"go.mongodb.org/mongo-driver/v2/bson"
)
func TestPaymentMethodAsCardReadsStoredSnakeCaseExpiry(t *testing.T) {
data, err := bson.Marshal(bson.M{
"pan": "2200001100000001",
"firstName": "S",
"lastName": "S",
"exp_month": 12.0,
"exp_year": 2031.0,
"country": nil,
})
if err != nil {
t.Fatalf("marshal card data: %v", err)
}
card, err := (&PaymentMethod{
Type: PaymentTypeCard,
Data: data,
}).AsCard()
if err != nil {
t.Fatalf("AsCard returned error: %v", err)
}
if got, want := card.ExpMonth, 12; got == nil || *got != want {
t.Fatalf("exp_month mismatch: got=%v want=%d", got, want)
}
if got, want := card.ExpYear, 2031; got == nil || *got != want {
t.Fatalf("exp_year mismatch: got=%v want=%d", got, want)
}
}
func TestCardPaymentDataMarshalUsesStoredSnakeCaseExpiry(t *testing.T) {
expMonth := 12
expYear := 2031
raw, err := bson.Marshal(CardPaymentData{
Pan: "2200001100000001",
FirstName: "S",
LastName: "S",
ExpMonth: &expMonth,
ExpYear: &expYear,
})
if err != nil {
t.Fatalf("marshal card data: %v", err)
}
var data bson.M
if err := bson.Unmarshal(raw, &data); err != nil {
t.Fatalf("unmarshal card data: %v", err)
}
if got, want := paymentDataInt(data["exp_month"]), 12; got == nil || *got != want {
t.Fatalf("stored exp_month mismatch: got=%v want=%d", got, want)
}
if got, want := paymentDataInt(data["exp_year"]), 2031; got == nil || *got != want {
t.Fatalf("stored exp_year mismatch: got=%v want=%d", got, want)
}
if _, ok := data["expMonth"]; ok {
t.Fatalf("card data must not store camelCase expMonth: %#v", data)
}
if _, ok := data["expYear"]; ok {
t.Fatalf("card data must not store camelCase expYear: %#v", data)
}
}