105 lines
2.5 KiB
Go
105 lines
2.5 KiB
Go
package models_test
|
|
|
|
import (
|
|
"fmt"
|
|
"gitea.deepak.science/deepak/gogmagog/models"
|
|
"gitea.deepak.science/deepak/gogmagog/store"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestModelUsers(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
a1 := &models.Action{ActionID: 3}
|
|
a2 := &models.Action{ActionID: 4}
|
|
p := &models.Plan{PlanID: 6}
|
|
|
|
username := "test1"
|
|
// password := password
|
|
user1 := &models.User{Username: username, DisplayName: "Ted Est", Password: []byte("$2y$05$6SVV35GX4cB4PDPhRaDD/exsL.HV8QtMMr60YL6dLyqtX4l58q.cy")}
|
|
str, _ := store.GetInMemoryStore()
|
|
str.InsertPlan(p, 3)
|
|
str.InsertAction(a1)
|
|
str.InsertAction(a2)
|
|
str.InsertUser(user1)
|
|
m := models.New(str)
|
|
|
|
userNoPass, err := m.UserByUsername("test1", 1)
|
|
assert.Nil(err)
|
|
assert.NotNil(userNoPass)
|
|
|
|
userNoPass, err = m.UserByUsername("test1", 2)
|
|
assert.NotNil(err)
|
|
assert.True(models.IsNotFoundError(err))
|
|
assert.Nil(userNoPass)
|
|
|
|
userNoPass, err = m.UserByUsername("test2", 2)
|
|
assert.NotNil(err)
|
|
assert.True(models.IsNotFoundError(err))
|
|
assert.Nil(userNoPass)
|
|
|
|
user, err := m.VerifyUserByUsernamePassword("test1", "password")
|
|
assert.Nil(err)
|
|
assert.NotNil(user)
|
|
|
|
user, err = m.VerifyUserByUsernamePassword("test1", "wrong_password")
|
|
assert.NotNil(err)
|
|
assert.Nil(user)
|
|
|
|
user, err = m.VerifyUserByUsernamePassword("test2", "password")
|
|
assert.NotNil(err)
|
|
assert.Nil(user)
|
|
}
|
|
|
|
func TestErrorUsers(t *testing.T) {
|
|
assert := assert.New(t)
|
|
m := getErrorModel(fmt.Errorf("err"))
|
|
|
|
user, err := m.VerifyUserByUsernamePassword("snth", "aoeu")
|
|
assert.Nil(user)
|
|
assert.NotNil(err)
|
|
}
|
|
|
|
func TestCreateUser(t *testing.T) {
|
|
assert := assert.New(t)
|
|
username := "test"
|
|
displayName := "Ted Est"
|
|
pass := "abc"
|
|
u := &models.CreateUserRequest{Username: username, DisplayName: displayName, Password: pass}
|
|
|
|
str, _ := store.GetInMemoryStore()
|
|
m := models.New(str)
|
|
|
|
id, err := m.CreateUser(u)
|
|
assert.Nil(err)
|
|
assert.EqualValues(1, id)
|
|
}
|
|
func TestCreateUserFailValidation(t *testing.T) {
|
|
assert := assert.New(t)
|
|
username := ""
|
|
displayName := "Ted Est"
|
|
pass := "abc"
|
|
u := &models.CreateUserRequest{Username: username, DisplayName: displayName, Password: pass}
|
|
|
|
str, _ := store.GetInMemoryStore()
|
|
m := models.New(str)
|
|
|
|
_, err := m.CreateUser(u)
|
|
assert.NotNil(err)
|
|
}
|
|
|
|
func TestCreateUserFailValidationPassword(t *testing.T) {
|
|
assert := assert.New(t)
|
|
username := "aoeu"
|
|
displayName := "Ted Est"
|
|
pass := ""
|
|
u := &models.CreateUserRequest{Username: username, DisplayName: displayName, Password: pass}
|
|
|
|
str, _ := store.GetInMemoryStore()
|
|
m := models.New(str)
|
|
|
|
_, err := m.CreateUser(u)
|
|
assert.NotNil(err)
|
|
}
|