github.com/oinume/lekcije@v0.0.0-20231017100347-5b4c5eb6ab24/backend/interface/http/server_test.go (about) 1 package http 2 3 import ( 4 "context" 5 "io" 6 "os" 7 "testing" 8 9 rollbar_go "github.com/rollbar/rollbar-go" 10 "go.uber.org/zap/zapcore" 11 12 "github.com/oinume/lekcije/backend/infrastructure/ga_measurement" 13 "github.com/oinume/lekcije/backend/infrastructure/mysql" 14 "github.com/oinume/lekcije/backend/infrastructure/rollbar" 15 interfaces "github.com/oinume/lekcije/backend/interface" 16 "github.com/oinume/lekcije/backend/logger" 17 "github.com/oinume/lekcije/backend/usecase" 18 ) 19 20 func TestMain(m *testing.M) { 21 db := helper.DB(nil) 22 defer func() { _ = db.Close() }() 23 helper.TruncateAllTables(nil) 24 _ = os.Chdir("../..") 25 os.Exit(m.Run()) 26 } 27 28 func newTestServer(t *testing.T, accessLog io.Writer, appLog io.Writer) *server { 29 appLogger := logger.NewAppLogger(appLog, zapcore.InfoLevel) 30 gormDB := helper.DB(t) 31 rollbarClientMock := &rollbar.ClientMock{ 32 ErrorWithStackSkipWithExtrasAndContextFunc: func(ctx context.Context, level string, err error, skip int, extras map[string]interface{}) { 33 // nop 34 }, 35 SetStackTracerFunc: func(stackTracer rollbar_go.StackTracerFunc) { 36 // nop 37 }, 38 } 39 return NewServer( 40 &interfaces.ServerArgs{ 41 AccessLogger: logger.NewAccessLogger(accessLog), 42 AppLogger: appLogger, 43 GormDB: gormDB, 44 GAMeasurementClient: ga_measurement.NewFakeClient(), 45 }, 46 usecase.NewErrorRecorder(appLogger, rollbar.NewErrorRecorderRepository(rollbarClientMock)), 47 usecase.NewUserAPIToken(mysql.NewUserAPITokenRepository(gormDB.DB())), 48 ) 49 }