mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
- go.mod module path + all self-imports: github.com/formancehq/payments -> github.com/hanzo-fi/payments (1590 .go files / 3152 refs; 20 modules: root, pkg/client, pkg/domain, 18 ce/plugins). External dep kept: formancehq/go-libs. - plugins: each ce/plugins/* consumed a *published* pkg/domain; added local 'replace .../pkg/domain => ../../../pkg/domain' (consistent with root) so every standalone plugin module builds in-monorepo. compile-plugin.sh MOD var rebranded too. - branding: README, LICENSE (dual MIT+EE; upstream copyright retained + Hanzo added), goreleaser (release images -> registry.hanzo.ai/hanzo-fi, OCI labels, homepage), proto go_package, renovate, speakeasy gen.yaml, connector-template *.gotpl. - CI: removed Numary/Formance workflows + composite action; added canonical hanzo.yml + cicd.yml (hanzoai/ci, gated HANZO_CI_ENABLED) + secretless ci.yml (go build/vet). - kept as data/compat keys: wire capability enums ALLOW_FORMANCE_*, generated SDK type client.Formance, domain field FormanceRedirectURL, OTEL_SERVICE_NAME, upstream base image. - verified: go build ./... (default + -tags ee) + all 20 nested modules green.
52 lines
1.6 KiB
Go
52 lines
1.6 KiB
Go
package mappers
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/hanzo-fi/payments/pkg/domain/models"
|
|
)
|
|
|
|
func TestPayableStatus(t *testing.T) {
|
|
cases := map[string]models.PaymentStatus{
|
|
"draft": models.PAYMENT_STATUS_PENDING,
|
|
"pending": models.PAYMENT_STATUS_PENDING,
|
|
"processing": models.PAYMENT_STATUS_PENDING,
|
|
"completed": models.PAYMENT_STATUS_SUCCEEDED,
|
|
"paid": models.PAYMENT_STATUS_SUCCEEDED,
|
|
"externally_paid": models.PAYMENT_STATUS_SUCCEEDED,
|
|
"delivered": models.PAYMENT_STATUS_SUCCEEDED,
|
|
"failed": models.PAYMENT_STATUS_FAILED,
|
|
"returned": models.PAYMENT_STATUS_FAILED,
|
|
"canceled": models.PAYMENT_STATUS_CANCELLED,
|
|
"cancelled": models.PAYMENT_STATUS_CANCELLED,
|
|
"expired": models.PAYMENT_STATUS_EXPIRED,
|
|
"unknown_state": models.PAYMENT_STATUS_UNKNOWN,
|
|
"": models.PAYMENT_STATUS_UNKNOWN,
|
|
"COMPLETED": models.PAYMENT_STATUS_SUCCEEDED, // case-insensitive
|
|
" pending ": models.PAYMENT_STATUS_PENDING, // trims whitespace
|
|
}
|
|
for in, want := range cases {
|
|
if got := PayableStatus(in); got != want {
|
|
t.Errorf("PayableStatus(%q) = %v, want %v", in, got, want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsTerminalStatus(t *testing.T) {
|
|
terminal := []models.PaymentStatus{
|
|
models.PAYMENT_STATUS_SUCCEEDED,
|
|
models.PAYMENT_STATUS_FAILED,
|
|
models.PAYMENT_STATUS_CANCELLED,
|
|
models.PAYMENT_STATUS_EXPIRED,
|
|
models.PAYMENT_STATUS_REFUNDED,
|
|
}
|
|
for _, s := range terminal {
|
|
if !IsTerminalStatus(s) {
|
|
t.Errorf("expected %v to be terminal", s)
|
|
}
|
|
}
|
|
if IsTerminalStatus(models.PAYMENT_STATUS_PENDING) {
|
|
t.Error("PENDING should not be terminal")
|
|
}
|
|
}
|