Files
CrimsonandGitHub 61cae8af0a chore: Move all CE plugins to own go modules (#780)
* 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
2026-07-01 14:53:02 +00:00

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=\"\"]"),
)
})