31 lines
744 B
Go
31 lines
744 B
Go
package model
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"go.mongodb.org/mongo-driver/v2/bson"
|
|
)
|
|
|
|
func TestTokenPaymentDataUnmarshalReadsSnakeCaseExpiryAsInt(t *testing.T) {
|
|
raw, err := bson.Marshal(bson.M{
|
|
"token": "card-token",
|
|
"last4": "1234",
|
|
"exp_month": "01",
|
|
"exp_year": 2031.0,
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("marshal card token data: %v", err)
|
|
}
|
|
|
|
var data TokenPaymentData
|
|
if err := bson.Unmarshal(raw, &data); err != nil {
|
|
t.Fatalf("unmarshal card token data: %v", err)
|
|
}
|
|
if got, want := data.ExpMonth, 1; got == nil || *got != want {
|
|
t.Fatalf("exp_month mismatch: got=%v want=%d", got, want)
|
|
}
|
|
if got, want := data.ExpYear, 2031; got == nil || *got != want {
|
|
t.Fatalf("exp_year mismatch: got=%v want=%d", got, want)
|
|
}
|
|
}
|