package services import ( "context" "net/http" "net/http/httptest" "os" "strings" "testing" "goweb/config" "goweb/ent" "github.com/labstack/echo/v4" ) var ( c *Container ctx echo.Context usr *ent.User rec *httptest.ResponseRecorder ) func TestMain(m *testing.M) { // Set the environment to test config.SwitchEnvironment(config.EnvTest) // Create a new container c = NewContainer() defer func() { if err := c.Shutdown(); err != nil { c.Web.Logger.Fatal(err) } }() // Create a web context req := httptest.NewRequest(http.MethodPost, "/", strings.NewReader("")) rec = httptest.NewRecorder() ctx = c.Web.NewContext(req, rec) // Create a test user var err error usr, err = c.ORM.User. Create(). SetEmail("test@test.dev"). SetPassword("abc"). SetName("Test User"). Save(context.Background()) if err != nil { panic(err) } // Run tests exitVal := m.Run() os.Exit(exitVal) }