From 862333218ad7f3a50c7d98c6dddac547b635362e Mon Sep 17 00:00:00 2001 From: bayusamudra5502 <bayusamudra.55.02.com@gmail.com> Date: Thu, 16 Feb 2023 17:51:43 +0700 Subject: [PATCH] fix: test error --- test/api.go | 11 +++++++++++ test/di.go | 5 +++-- test/utils/base.go | 7 ++++--- test/utils/executor.go | 31 ++++++++++++++++++++++++++++++- 4 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 test/api.go diff --git a/test/api.go b/test/api.go new file mode 100644 index 0000000..b67503d --- /dev/null +++ b/test/api.go @@ -0,0 +1,11 @@ +package test + +import ( + "gitlab.informatika.org/ocw/ocw-backend/test/db" + "gitlab.informatika.org/ocw/ocw-backend/utils/app" +) + +type ApiTestPack struct { + *db.MockDatabase + app.Server +} diff --git a/test/di.go b/test/di.go index 8d6997f..62866e4 100644 --- a/test/di.go +++ b/test/di.go @@ -15,12 +15,13 @@ import ( "gitlab.informatika.org/ocw/ocw-backend/test/db" "gitlab.informatika.org/ocw/ocw-backend/utils" - "gitlab.informatika.org/ocw/ocw-backend/utils/app" "gitlab.informatika.org/ocw/ocw-backend/utils/env" ) -func CreateServer(logger logger.Logger, envTest *env.Environment) (app.Server, error) { +func CreateServer(logger logger.Logger, envTest *env.Environment) (*ApiTestPack, error) { wire.Build( + wire.Struct(new(ApiTestPack), "*"), + utils.UtilSetTest, repository.RepositoryBasicSet, handler.HandlerSet, diff --git a/test/utils/base.go b/test/utils/base.go index 4a75e77..e744a1f 100644 --- a/test/utils/base.go +++ b/test/utils/base.go @@ -4,19 +4,20 @@ import ( "net/http" "gitlab.informatika.org/ocw/ocw-backend/test" + "gitlab.informatika.org/ocw/ocw-backend/test/db" "gitlab.informatika.org/ocw/ocw-backend/utils/env" ) -func NewTestHandler() (http.Handler, *MockLogger, error) { +func NewTestHandler() (http.Handler, *MockLogger, *db.MockDatabase, error) { logger := NewMockLogger() handler, err := test.CreateServer(logger, &env.Environment{ AppEnvironment: "DEVELOPMENT", }) if err != nil { - return nil, nil, err + return nil, nil, nil, err } logger.CleanLog() - return handler.GetServer(), logger, nil + return handler.GetServer(), logger, handler.MockDatabase, nil } diff --git a/test/utils/executor.go b/test/utils/executor.go index 1b4fda6..ced02a1 100644 --- a/test/utils/executor.go +++ b/test/utils/executor.go @@ -15,7 +15,7 @@ type RequestData struct { } func ExecuteJSON(reqData RequestData) (*http.Response, *MockLogger, error) { - r, log, err := NewTestHandler() + r, log, _, err := NewTestHandler() if err != nil { return nil, nil, err @@ -50,3 +50,32 @@ func ExecuteJSON(reqData RequestData) (*http.Response, *MockLogger, error) { return res, log, nil } + +func ExecuteJSONWithHandler(r http.Handler, reqData RequestData) (*http.Response, error) { + var req *http.Request + + if reqData.Data == nil { + req = httptest.NewRequest(reqData.Method, reqData.Endpoint, nil) + } else { + byteData, err := json.Marshal(reqData.Data) + + if err != nil { + return nil, err + } + + reader := bytes.NewReader(byteData) + req = httptest.NewRequest(reqData.Method, reqData.Endpoint, reader) + } + + if reqData.Headers != nil { + for key, value := range reqData.Headers { + req.Header.Add(key, value) + } + } + + rec := httptest.NewRecorder() + + r.ServeHTTP(rec, req) + + return rec.Result(), nil +} -- GitLab