mirror of
https://git.rwth-aachen.de/acs/public/villas/web-backend-go/
synced 2025-03-30 00:00:12 +01:00
Breaks user test into different testing functions
This commit is contained in:
parent
c2429394ed
commit
94ea3c4ebf
2 changed files with 26 additions and 15 deletions
|
@ -91,11 +91,9 @@ func DummyInitDB() *gorm.DB {
|
||||||
return test_db
|
return test_db
|
||||||
}
|
}
|
||||||
|
|
||||||
func DummyOnlyAdminDB(test_db *gorm.DB) {
|
func DummyAddOnlyUserTableWithAdminDB(db *gorm.DB) {
|
||||||
|
db.AutoMigrate(&User{})
|
||||||
MigrateModels(test_db)
|
checkErr(db.Create(&User0).Error)
|
||||||
|
|
||||||
checkErr(test_db.Create(&User0).Error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Migrates models and populates them with data
|
// Migrates models and populates them with data
|
||||||
|
|
|
@ -1,38 +1,51 @@
|
||||||
package user
|
package user
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/jinzhu/gorm"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"git.rwth-aachen.de/acs/public/villas/villasweb-backend-go/common"
|
"git.rwth-aachen.de/acs/public/villas/villasweb-backend-go/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestUserEndpoints(t *testing.T) {
|
var router *gin.Engine
|
||||||
|
var db *gorm.DB
|
||||||
|
|
||||||
db := common.DummyInitDB()
|
func cleanUserTable() {
|
||||||
|
db.DropTable(&common.User{})
|
||||||
|
db.AutoMigrate(&common.User{})
|
||||||
|
db.Create(&common.User0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMain(m *testing.M) {
|
||||||
|
|
||||||
|
db = common.DummyInitDB()
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
common.DummyOnlyAdminDB(db)
|
|
||||||
|
|
||||||
router := gin.Default()
|
common.DummyAddOnlyUserTableWithAdminDB(db)
|
||||||
|
|
||||||
|
router = gin.Default()
|
||||||
api := router.Group("/api")
|
api := router.Group("/api")
|
||||||
|
|
||||||
RegisterAuthenticate(api.Group("/authenticate"))
|
RegisterAuthenticate(api.Group("/authenticate"))
|
||||||
api.Use(Authentication(true))
|
api.Use(Authentication(true))
|
||||||
RegisterUserEndpoints(api.Group("/users"))
|
RegisterUserEndpoints(api.Group("/users"))
|
||||||
|
|
||||||
|
os.Exit(m.Run())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetAllUsers(t *testing.T) {
|
||||||
|
|
||||||
|
defer cleanUserTable()
|
||||||
|
|
||||||
// authenticate as admin
|
// authenticate as admin
|
||||||
token, err := common.NewAuthenticateForTest(router,
|
token, err := common.NewAuthenticateForTest(router,
|
||||||
"/api/authenticate", "POST", common.AdminCredentials, 200)
|
"/api/authenticate", "POST", common.AdminCredentials, 200)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// test GET user/
|
|
||||||
err = common.NewTestEndpoint(router, token,
|
|
||||||
"/api/users", "GET", nil,
|
|
||||||
200, common.KeyModels{"users": []common.User{common.User0}})
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
// test GET user/1 (the admin)
|
// test GET user/1 (the admin)
|
||||||
err = common.NewTestEndpoint(router, token,
|
err = common.NewTestEndpoint(router, token,
|
||||||
"/api/users/1", "GET", nil,
|
"/api/users/1", "GET", nil,
|
||||||
|
|
Loading…
Add table
Reference in a new issue