package testutils import ( "encoding/json" "log" "net/http" "net/http/httptest" "strings" "git.artlef.fr/PersonalLibraryManager/internal/config" "git.artlef.fr/PersonalLibraryManager/internal/setup" "github.com/gin-gonic/gin" ) func TestSetup() *gin.Engine { c := config.LoadConfig("config_test/test.toml") return setup.Setup(&c) } type loginResponse struct { Message string `json:"message"` Token string `json:"token"` } func ConnectDemoUser(router *gin.Engine) string { loginJson := `{ "username": "demo", "password":"demopw" }` return connectUser(router, loginJson) } func ConnectDemo2User(router *gin.Engine) string { loginJson := `{ "username": "demo2", "password":"demopw" }` return connectUser(router, loginJson) } func connectUser(router *gin.Engine, loginJson string) string { w := httptest.NewRecorder() req, _ := http.NewRequest("POST", "/auth/login", strings.NewReader(loginJson)) router.ServeHTTP(w, req) var parsedResponse loginResponse err := json.Unmarshal(w.Body.Bytes(), &parsedResponse) if err != nil { log.Fatal(err) } return parsedResponse.Token }