gogmagog/store/postgres_user_test.go
Deepak 3ea8603368
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
Adds user table and adds support for config flag to drop DB on restart
2021-01-11 20:15:36 -06:00

65 lines
1.4 KiB
Go

package store_test
import (
"fmt"
"github.com/DATA-DOG/go-sqlmock"
"github.com/stretchr/testify/assert"
"testing"
)
func TestSelectUserById(t *testing.T) {
// set up test
assert := assert.New(t)
id := 1
username := "test"
displayName := "Tom Est"
password := []byte("ABC€")
str, mock := getDbMock(t)
rows := sqlmock.NewRows([]string{
"user_id",
"username",
"display_name",
"password",
}).
AddRow(id, username, displayName, password)
mock.ExpectQuery(`^SELECT user_id, username, display_name, password FROM users WHERE user_id = \$1`).
WithArgs(id).
WillReturnRows(rows)
// function under test
user, err := str.SelectUserByID(1)
// test results
assert.Nil(err)
assert.EqualValues(id, user.UserID)
assert.Equal(username, user.Username)
assert.Equal(displayName, user.DisplayName)
assert.Equal(password, user.Password)
if err := mock.ExpectationsWereMet(); err != nil {
t.Errorf("unfulfilled expectations: %s", err)
}
}
func TestErrUserByID(t *testing.T) {
assert := assert.New(t)
idToUse := 1
str, mock := getDbMock(t)
mock.ExpectQuery(`^SELECT user_id, username, display_name, password FROM users WHERE user_id = \$1`).WithArgs(idToUse).WillReturnError(fmt.Errorf("example error"))
user, err := str.SelectUserByID(idToUse)
assert.NotNil(err)
assert.Nil(user)
if err := mock.ExpectationsWereMet(); err != nil {
t.Errorf("unfulfilled expectations: %s", err)
}
}