mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* Move all public connectors to ce/plugins * Update tooling to account for new go modules under ce * Ensure we test all CE plugins in CI * Move Dummypay to ce/plugins for simplicity's sake in the generation scripts * Use versioned pkg/domain in plugins * Ensure that renovate updates all CE plugins in a single PR when pkg/domain tags are pushed to github * Ensure Justfile commands work over all CE plugins * Copy ce plugin go.mods in dev.Dockerfile * Only add a go.mod for new plugins if they are ce * Ensure generated generic client structs are named correctly for submodule * Add coverprofile for each ce plugin * Add set -e for Justfile for loops over plugins * Infer go version from flake.nix in connector template tool
67 lines
2.2 KiB
Go
67 lines
2.2 KiB
Go
package client
|
|
|
|
import (
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
"testing"
|
|
)
|
|
|
|
func TestClient(t *testing.T) {
|
|
RegisterFailHandler(Fail)
|
|
RunSpecs(t, "Qonto *Plugin Suite")
|
|
}
|
|
|
|
var _ = Describe("qontoErrors Error", func() {
|
|
DescribeTable("Error method",
|
|
func(qontoError qontoErrors, expected string) {
|
|
err := qontoError.Error()
|
|
Expect(err).To(HaveOccurred())
|
|
Expect(err.Error()).To(Equal(expected))
|
|
},
|
|
Entry("no errors in list", qontoErrors{StatusCode: 500}, "statusCode=500, errorMessage=\"unexpected error\""),
|
|
Entry("single error in list",
|
|
qontoErrors{
|
|
StatusCode: 400,
|
|
Errors: []qontoError{
|
|
{Code: "invalid_request", Detail: "The request is invalid"},
|
|
},
|
|
}, "statusCode=400, errorCode=\"invalid_request\", errorMessage=\"The request is invalid\""),
|
|
Entry("multiple errors in list",
|
|
qontoErrors{
|
|
StatusCode: 422,
|
|
Errors: []qontoError{
|
|
{Code: "unprocessable_entity", Detail: "Entity cannot be processed"},
|
|
{Code: "duplicate_entry", Detail: "Duplicate entry found"},
|
|
},
|
|
}, "multiple errors (statusCode=422):"+
|
|
" [errorCode=\"unprocessable_entity\", errorMessage=\"Entity cannot be processed\"]"+
|
|
" [errorCode=\"duplicate_entry\", errorMessage=\"Duplicate entry found\"]"),
|
|
Entry("single error with empty code and detail",
|
|
qontoErrors{
|
|
StatusCode: 400,
|
|
Errors: []qontoError{
|
|
{Code: "", Detail: ""},
|
|
},
|
|
}, "statusCode=400, errorCode=\"\", errorMessage=\"\""),
|
|
Entry("single error with empty detail",
|
|
qontoErrors{
|
|
StatusCode: 400,
|
|
Errors: []qontoError{
|
|
{Code: "missing_detail", Detail: ""},
|
|
},
|
|
}, "statusCode=400, errorCode=\"missing_detail\", errorMessage=\"\""),
|
|
Entry("multiple errors with one empty code or detail",
|
|
qontoErrors{
|
|
StatusCode: 422,
|
|
Errors: []qontoError{
|
|
{Code: "unprocessable_entity", Detail: "Entity cannot be processed"},
|
|
{Code: "", Detail: "Missing code"},
|
|
{Code: "duplicate_entry", Detail: ""},
|
|
},
|
|
}, "multiple errors (statusCode=422):"+
|
|
" [errorCode=\"unprocessable_entity\", errorMessage=\"Entity cannot be processed\"]"+
|
|
" [errorCode=\"\", errorMessage=\"Missing code\"]"+
|
|
" [errorCode=\"duplicate_entry\", errorMessage=\"\"]"),
|
|
)
|
|
})
|