Files
zeekay 7d727874d5 chore: rebrand Formance Payments -> Hanzo Payments (hanzo-fi)
- 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.
2026-07-05 13:08:55 -07:00

63 lines
2.2 KiB
Go

package models_test
import (
"errors"
"testing"
"github.com/hanzo-fi/payments/pkg/domain/models"
"github.com/stretchr/testify/assert"
)
func TestConnectorMetadataError(t *testing.T) {
t.Parallel()
expectedField := "arbitrary-field-name"
err := models.NewConnectorValidationError(expectedField, models.ErrMissingConnectorMetadata)
assert.Regexp(t, expectedField, err.Error())
assert.ErrorIs(t, err, models.ErrMissingConnectorMetadata)
}
func TestConnectorValidationError(t *testing.T) {
t.Parallel()
originalErr := errors.New("test error")
validationErr := models.NewConnectorValidationError("test_field", originalErr)
assert.Contains(t, validationErr.Error(), "test_field")
assert.Contains(t, validationErr.Error(), "test error")
unwrappedErr := validationErr.Unwrap()
assert.NotNil(t, unwrappedErr)
assert.Contains(t, unwrappedErr.Error(), "test_field")
assert.Contains(t, unwrappedErr.Error(), "test error")
}
func TestErrorVariables(t *testing.T) {
t.Parallel()
assert.NotNil(t, models.ErrInvalidConfig)
assert.NotNil(t, models.ErrFailedAccountCreation)
assert.NotNil(t, models.ErrMissingFromPayloadInRequest)
assert.NotNil(t, models.ErrMissingAccountInRequest)
assert.NotNil(t, models.ErrInvalidRequest)
assert.NotNil(t, models.ErrValidation)
assert.NotNil(t, models.ErrMissingConnectorMetadata)
assert.NotNil(t, models.ErrMissingConnectorField)
assert.Equal(t, "invalid config", models.ErrInvalidConfig.Error())
assert.Equal(t, "failed to create account", models.ErrFailedAccountCreation.Error())
assert.Equal(t, "missing from payload in request", models.ErrMissingFromPayloadInRequest.Error())
assert.Equal(t, "missing account number in request", models.ErrMissingAccountInRequest.Error())
assert.Equal(t, "invalid request", models.ErrInvalidRequest.Error())
assert.Equal(t, "validation error", models.ErrValidation.Error())
assert.Equal(t, "missing required metadata in request", models.ErrMissingConnectorMetadata.Error())
assert.Equal(t, "missing required field in request", models.ErrMissingConnectorField.Error())
}
func TestNonRetryableError(t *testing.T) {
t.Parallel()
var err *models.ConnectorValidationError
assert.IsType(t, err, models.NonRetryableError)
}