package main import ( "log" "net/http" "net/http/httptest" "os" "testing" "github.com/joho/godotenv" ) var a App func TestMain(m *testing.M) { a = App{} err := godotenv.Load() if err != nil { log.Fatal("Error loading .env file") } a.Initialize( os.Getenv("TEST_DB_USERNAME"), os.Getenv("TEST_DB_PASSWORD"), os.Getenv("TEST_DB_NAME")) ensureConfigTableExists(a.DB) ensureDataTypeTableExists(a.DB) ensureDeviceTypeTableExists(a.DB) ensureDeviceTableExists(a.DB) ensureFileTableExists(a.DB) ensureTagClassTableExists(a.DB) ensureTagTableExists(a.DB) ensureTagValueTableExists(a.DB) ensureLatestTagValueTableExists(a.DB) code := m.Run() clearConfigTable() clearDataTypeTable() clearDeviceTypeTable() clearDeviceTable() clearFileTable() clearTagClassTable() clearTagTable() clearTagValueTable() clearLatestTagValueTable() os.Exit(code) } func executeRequest(req *http.Request) *httptest.ResponseRecorder { rr := httptest.NewRecorder() a.Router.ServeHTTP(rr, req) return rr } func checkResponseCode(t *testing.T, expected, actual int) { if expected != actual { t.Errorf("Expected response code %d. Got %d\n", expected, actual) } }