made an api test for route setupcheck

This commit is contained in:
2025-01-03 15:50:56 +01:00
parent 845fe6111b
commit c3009c59c4
4 changed files with 107 additions and 24 deletions
+1 -1
View File
@@ -20,6 +20,7 @@ func SaveCharacterToDB(character *Char) error {
}
func MigrateStructure() error {
err := database.DB.AutoMigrate(
&Char{},
&Eigenschaft{},
&Lp{},
&Ap{},
@@ -27,7 +28,6 @@ func MigrateStructure() error {
&Merkmale{},
&Erfahrungsschatz{},
&Bennies{},
&Char{},
)
if err != nil {
return err
+21 -18
View File
@@ -3,7 +3,7 @@ package main
import (
"bamort/character"
"bamort/database"
"bamort/equipment"
"bamort/maintenance"
"bamort/router"
"github.com/gin-gonic/gin"
@@ -19,25 +19,28 @@ func main() {
// Routes
protected := router.BaseRouterGrp(r)
// Character routes
rCharGrp := router.CharRouterGrp(protected)
//rCharGrp := router.CharRouterGrp(protected)
router.CharRouterGrp(protected)
rCharGrp.GET("/{id}/equipment", equipment.ListAusruestung) // List equipment for a character
//rCharGrp.POST("/{id}/equipment", equipment.AddAusruestung) // Add equipment to a character
rCharGrp.PUT("/{id}/equipment/{id}", equipment.UpdateAusruestung) // List equipment for a character
rCharGrp.DELETE("/{id}/equipment/{id}", equipment.DeleteAusruestung) // List equipment for a character
//rCharGrp.GET("/{id}/spells", spells.ListAusruestung) // List equipment for a character
//rCharGrp.POST("/{id}/spells", equipment.AddAusruestung) // Add equipment to a character
rCharGrp.PUT("/{id}/spells/{id}", equipment.UpdateAusruestung) // List equipment for a character
rCharGrp.DELETE("/{id}/spells/{id}", equipment.DeleteAusruestung) // List equipment for a character
rCharGrp.POST("/{id}/spells", character.DeleteCharacter) // Add a spell to a character
rCharGrp.GET("/{id}/spells", character.DeleteCharacter) // List spells for a character
// Equipment routes
protected.POST("/ausruestung", equipment.CreateAusruestung)
//protected.GET("/ausruestung/:character_id", equipment.GetAusruestung)
protected.PUT("/ausruestung/:ausruestung_id", equipment.UpdateAusruestung)
protected.DELETE("/ausruestung/:ausruestung_id", equipment.DeleteAusruestung)
/*
rCharGrp.GET("/{id}/equipment", equipment.ListAusruestung) // List equipment for a character
//rCharGrp.POST("/{id}/equipment", equipment.AddAusruestung) // Add equipment to a character
rCharGrp.PUT("/{id}/equipment/{id}", equipment.UpdateAusruestung) // List equipment for a character
rCharGrp.DELETE("/{id}/equipment/{id}", equipment.DeleteAusruestung) // List equipment for a character
//rCharGrp.GET("/{id}/spells", spells.ListAusruestung) // List equipment for a character
//rCharGrp.POST("/{id}/spells", equipment.AddAusruestung) // Add equipment to a character
rCharGrp.PUT("/{id}/spells/{id}", equipment.UpdateAusruestung) // List equipment for a character
rCharGrp.DELETE("/{id}/spells/{id}", equipment.DeleteAusruestung) // List equipment for a character
rCharGrp.POST("/{id}/spells", character.DeleteCharacter) // Add a spell to a character
rCharGrp.GET("/{id}/spells", character.DeleteCharacter) // List spells for a character
// Equipment routes
protected.POST("/ausruestung", equipment.CreateAusruestung)
//protected.GET("/ausruestung/:character_id", equipment.GetAusruestung)
protected.PUT("/ausruestung/:ausruestung_id", equipment.UpdateAusruestung)
protected.DELETE("/ausruestung/:ausruestung_id", equipment.DeleteAusruestung)
*/
protected.POST("/upload", character.UploadFiles)
protected.GET("/setupcheck", database.SetupCheck)
protected.GET("/setupcheck", maintenance.SetupCheck)
r.Run(":8180") // Start server on port 8080
}
@@ -1,4 +1,4 @@
package main
package maintenance
import (
"bamort/character"
@@ -16,7 +16,7 @@ import (
func SetupCheck(c *gin.Context) {
db := database.ConnectDatabase()
if db != nil {
if db == nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to connect to DataBase"})
return
}
@@ -29,6 +29,37 @@ func SetupCheck(c *gin.Context) {
}
func migrateStructure() error {
/*
err := database.DB.AutoMigrate(
&user.User{},
&character.Char{},
&character.Eigenschaft{},
&character.Lp{},
&character.Ap{},
&character.B{},
&character.Merkmale{},
&character.Erfahrungsschatz{},
&character.Bennies{},
&gsmaster.Skill{},
&gsmaster.WeaponSkill{},
&gsmaster.Spell{},
&gsmaster.Equipment{},
&gsmaster.Weapon{},
&gsmaster.Container{},
&gsmaster.Transportation{},
&gsmaster.Believe{},
&equipment.Ausruestung{},
&equipment.Waffe{},
&equipment.Behaeltniss{},
&equipment.Transportation{},
&skills.Fertigkeit{},
&skills.Waffenfertigkeit{},
&skills.Zauber{},
)
if err != nil {
return err
}
*/
err := database.MigrateStructure()
if err != nil {
return err
@@ -37,7 +68,7 @@ func migrateStructure() error {
if err != nil {
return err
}
err = equipment.MigrateStructure()
err = user.MigrateStructure()
if err != nil {
return err
}
@@ -45,7 +76,7 @@ func migrateStructure() error {
if err != nil {
return err
}
err = importer.MigrateStructure()
err = equipment.MigrateStructure()
if err != nil {
return err
}
@@ -53,7 +84,7 @@ func migrateStructure() error {
if err != nil {
return err
}
err = user.MigrateStructure()
err = importer.MigrateStructure()
if err != nil {
return err
}
+49
View File
@@ -2,6 +2,7 @@ package tests
import (
"bamort/character"
"bamort/maintenance"
"bamort/router"
"bytes"
"encoding/json"
@@ -33,6 +34,54 @@ type Character struct {
Race string `json:"race"`
}
func TestSetupCheck(t *testing.T) {
//r := gin.Default()
c := gin.Context{}
maintenance.SetupCheck(&c)
assert.Empty(t, nil, "expected NIL to be empty")
/*
SetupTestDB()
TestCreateChar(t)
// Initialize a Gin router
r := gin.Default()
router.SetupGin(r)
// Routes
protected := router.BaseRouterGrp(r)
// Character routes
rCharGrp := router.CharRouterGrp(protected)
rCharGrp.GET("/test", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"status": "Test OK"})
})
// Create a test HTTP request
req, _ := http.NewRequest("GET", "/api/characters", nil)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer ${token}")
// Create a response recorder to capture the handler's response
respRecorder := httptest.NewRecorder()
// Perform the test request
r.ServeHTTP(respRecorder, req)
// Assert the response status code
assert.Equal(t, http.StatusOK, respRecorder.Code)
// Assert the response body
var listOfCharacter []*character.CharList
err := json.Unmarshal(respRecorder.Body.Bytes(), &listOfCharacter)
assert.NoError(t, err)
assert.Equal(t, "Harsk Hammerhuter, Zen", listOfCharacter[0].Name)
assert.Equal(t, "Zwerg", listOfCharacter[0].Rasse)
assert.Equal(t, 1, int(listOfCharacter[0].ID)) // Check the simulated ID
assert.Equal(t, "Krieger", listOfCharacter[0].Typ)
assert.Equal(t, 3, listOfCharacter[0].Grad)
assert.Equal(t, "test", listOfCharacter[0].Owner)
assert.Equal(t, false, listOfCharacter[0].Public)
*/
}
func TestListCharacters(t *testing.T) {
SetupTestDB()
TestCreateChar(t)