clndr/api/test/controllers/user_test.go

200 lines
4.7 KiB
Go

package controllers_test
import (
"encoding/json"
"magmise/controllers"
"magmise/models"
"magmise/test"
"net/http"
"testing"
)
// "/user/{username}"
func TestGetUser(t *testing.T) {
setup := test.Setup(t, "get user")
defer setup()
var user controllers.User
w := test.Request(t, user.Get, "GET", "/user/{username}", `{}`, map[string]string{"username": "fred"})
var usermodel models.User
if json.Unmarshal(w.Body.Bytes(), &usermodel) != nil {
t.Fail()
}
if usermodel.Username != "fred" {
t.Fatal(usermodel)
}
}
// "/user"
func TestCreateUser(t *testing.T) {
setup := test.Setup(t, "create user")
defer setup()
var user controllers.User
w := test.Request(t, user.Create, "POST", "/user/{username}", `{"username": "fred", "password": "a"}`, nil)
if w.Code != http.StatusOK {
t.Fatal(w.Code, w.Result().Status)
}
}
// // "/user/application/:userid/:discordid"
// func TestCreateuser(t *testing.T) {
// setup := test.Setup(t)
// defer setup()
// var user controllers.User
// handler := http.HandlerFunc(user.Createuser)
// r, err := http.NewRequest("POST", "/user/application/:userid/:discordid", nil)
// if err != nil {
// t.Fatal(err)
// }
// q := r.URL.Query()
// q.Add(":userid", "6")
// q.Add(":discordid", "6")
// r.URL.RawQuery = q.Encode()
// w := httptest.NewRecorder()
// handler(w, r)
// if w.Code != 200 {
// t.Fail()
// }
// }
// // PATCH "/user/application/:userid"
// func TestUpdateuser(t *testing.T) {
// setup := test.Setup(t)
// defer setup()
// t.Log("Test Updateuser")
// usermodel := models.User{userId: "1", Status: "closed"}
// userjson, err := json.Marshal(usermodel)
// if err != nil {
// t.Fatal(err)
// }
// var user controllers.Userco
// handler := http.HandlerFunc(user.Updateuser)
// r, err := http.NewRequest("PATCH", "/user/application/:userid", bytes.NewBuffer(userjson))
// r.Header.Set("Content-Type", "application/json; charset=UTF-8")
// if err != nil {
// t.Fatal(err)
// }
// q := r.URL.Query()
// q.Add(":userid", "1")
// r.URL.RawQuery = q.Encode()
// w := httptest.NewRecorder()
// handler(w, r)
// if w.Code != 200 {
// t.Log(w.Body)
// t.Fatal(w.Code)
// }
// usermodel.Read()
// if usermodel.Status != "closed" {
// t.Fail()
// }
// }
// // "/user/application/:userid"
// func TestDeleteuser(t *testing.T) {
// setup := test.Setup(t)
// defer setup()
// var user controllers.User
// handler := http.HandlerFunc(user.Deleteuser)
// r, err := http.NewRequest("POST", "/user/application/:userid", nil)
// if err != nil {
// t.Fatal(err)
// }
// q := r.URL.Query()
// q.Add(":userid", "1")
// r.URL.RawQuery = q.Encode()
// w := httptest.NewRecorder()
// handler(w, r)
// if w.Code != 200 {
// t.Fail()
// }
// }
// // /user/:discordid/users/application/:status/
// func TestGetUserusers(t *testing.T) {
// setup := test.Setup(t)
// defer setup()
// handler := http.HandlerFunc(controllers.User{}.GetUserusers)
// r, err := http.NewRequest("GET", "/user/:discordid/users/application/:status/", nil)
// if err != nil {
// t.Fatal(err)
// }
// q := r.URL.Query()
// q.Add(":discordid", "1")
// q.Add(":status", "all")
// q.Add(":limit", "100")
// r.URL.RawQuery = q.Encode()
// w := httptest.NewRecorder()
// handler(w, r)
// if w.Code != 200 {
// t.Fail()
// }
// var users []models.User
// if json.Unmarshal(w.Body.Bytes(), &users) != nil {
// t.Fatal("Failed unmarshal")
// }
// for _, user := range users {
// t.Log(user)
// t.Log("\n")
// }
// }
// // /users/application/:status/
// func TestGetusers(t *testing.T) {
// setup := test.Setup(t)
// defer setup()
// handler := http.HandlerFunc(controllers.User{}.GetUserusers)
// r, err := http.NewRequest("GET", "/users/application/:status/", nil)
// if err != nil {
// t.Fatal(err)
// }
// q := r.URL.Query()
// q.Add(":status", "all")
// q.Add(":limit", "100")
// r.URL.RawQuery = q.Encode()
// w := httptest.NewRecorder()
// handler(w, r)
// if w.Code != 200 {
// t.Fail()
// }
// var users []models.User
// if json.Unmarshal(w.Body.Bytes(), &users) != nil {
// t.Fatal("Failed unmarshal")
// }
// for _, user := range users {
// t.Log(user)
// t.Log("\n")
// }
// }
// // "/answer/application/:userid/"
// func TestAddAnswer(t *testing.T) {
// setup := test.Setup(t)
// defer setup()
// var user controllers.User
// handler := http.HandlerFunc(user.AddAnswer)
// r, err := http.NewRequest("POST", "/answer/application/:userid/", bytes.NewBufferString("Hello world"))
// if err != nil {
// t.Fatal(err)
// }
// q := r.URL.Query()
// q.Add(":userid", "1")
// r.URL.RawQuery = q.Encode()
// w := httptest.NewRecorder()
// handler(w, r)
// if w.Code != 200 {
// t.Fatal("Failed to add answer", w.Code)
// }
// }