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, 3) str.InsertAction(a2, 3) 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) }