adds user_id as a selectable field
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
This commit is contained in:
parent
4989848335
commit
4708a2b8ff
@ -99,7 +99,7 @@ func (store *postgresStore) UpdateAction(action *models.Action) error {
|
|||||||
|
|
||||||
func (store *postgresStore) SelectPlans() ([]*models.Plan, error) {
|
func (store *postgresStore) SelectPlans() ([]*models.Plan, error) {
|
||||||
plans := make([]*models.Plan, 0)
|
plans := make([]*models.Plan, 0)
|
||||||
err := store.db.Select(&plans, "SELECT plan_id, plan_date FROM plans")
|
err := store.db.Select(&plans, "SELECT plan_id, plan_date, user_id FROM plans")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -108,7 +108,7 @@ func (store *postgresStore) SelectPlans() ([]*models.Plan, error) {
|
|||||||
|
|
||||||
func (store *postgresStore) SelectPlanByID(id int) (*models.Plan, error) {
|
func (store *postgresStore) SelectPlanByID(id int) (*models.Plan, error) {
|
||||||
plan := models.Plan{}
|
plan := models.Plan{}
|
||||||
err := store.db.Get(&plan, store.db.Rebind("SELECT plan_id, plan_date FROM plans WHERE plan_id = ?"), id)
|
err := store.db.Get(&plan, store.db.Rebind("SELECT plan_id, plan_date, user_id FROM plans WHERE plan_id = ?"), id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -116,10 +116,10 @@ func (store *postgresStore) SelectPlanByID(id int) (*models.Plan, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (store *postgresStore) InsertPlan(plan *models.Plan) (int, error) {
|
func (store *postgresStore) InsertPlan(plan *models.Plan) (int, error) {
|
||||||
queryString := store.db.Rebind("INSERT INTO plans (plan_date) VALUES (?) RETURNING plan_id")
|
queryString := store.db.Rebind("INSERT INTO plans (plan_date, user_id) VALUES (?, ?) RETURNING plan_id")
|
||||||
tx := store.db.MustBegin()
|
tx := store.db.MustBegin()
|
||||||
var id int
|
var id int
|
||||||
err := tx.Get(&id, queryString, plan.PlanDate)
|
err := tx.Get(&id, queryString, plan.PlanDate, plan.UserID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return -1, err
|
return -1, err
|
||||||
|
176
store/postgres_plan_test.go
Normal file
176
store/postgres_plan_test.go
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
package store_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
|
"github.com/DATA-DOG/go-sqlmock"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectPlans(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
currentTime := time.Now()
|
||||||
|
idToUse := 1
|
||||||
|
userIDToUse := 2
|
||||||
|
|
||||||
|
str, mock := getDbMock(t)
|
||||||
|
|
||||||
|
rows := sqlmock.NewRows([]string{"plan_id", "plan_date", "user_id"}).AddRow(idToUse, currentTime, userIDToUse)
|
||||||
|
mock.ExpectQuery("^SELECT plan_id, plan_date, user_id FROM plans$").WillReturnRows(rows)
|
||||||
|
|
||||||
|
plans, err := str.SelectPlans()
|
||||||
|
assert.Nil(err)
|
||||||
|
assert.Equal(1, len(plans))
|
||||||
|
plan := plans[0]
|
||||||
|
assert.EqualValues(idToUse, plan.PlanID)
|
||||||
|
assert.Equal(currentTime, *plan.PlanDate)
|
||||||
|
assert.EqualValues(userIDToUse, plan.UserID)
|
||||||
|
|
||||||
|
if err := mock.ExpectationsWereMet(); err != nil {
|
||||||
|
t.Errorf("unfulfilled expectations: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSelectPlanByID(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
currentTime := time.Now()
|
||||||
|
idToUse := 1
|
||||||
|
userIDToUse := 2
|
||||||
|
|
||||||
|
str, mock := getDbMock(t)
|
||||||
|
|
||||||
|
rows := sqlmock.NewRows([]string{"plan_id", "plan_date", "user_id"}).AddRow(idToUse, currentTime, userIDToUse)
|
||||||
|
mock.ExpectQuery("^SELECT plan_id, plan_date, user_id FROM plans WHERE plan_id = \\$1$").WithArgs(idToUse).WillReturnRows(rows)
|
||||||
|
|
||||||
|
plan, err := str.SelectPlanByID(idToUse)
|
||||||
|
assert.Nil(err)
|
||||||
|
assert.EqualValues(idToUse, plan.PlanID)
|
||||||
|
assert.Equal(currentTime, *plan.PlanDate)
|
||||||
|
assert.EqualValues(userIDToUse, plan.UserID)
|
||||||
|
|
||||||
|
if err := mock.ExpectationsWereMet(); err != nil {
|
||||||
|
t.Errorf("unfulfilled expectations: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInsertPlan(t *testing.T) {
|
||||||
|
// setup
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
str, mock := getDbMock(t)
|
||||||
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
|
userID := 2
|
||||||
|
|
||||||
|
plan := &models.Plan{PlanDate: &planDate, UserID: int64(userID)}
|
||||||
|
|
||||||
|
idToUse := 8
|
||||||
|
|
||||||
|
rows := sqlmock.NewRows([]string{"plan_id"}).AddRow(8)
|
||||||
|
|
||||||
|
mock.ExpectBegin()
|
||||||
|
mock.ExpectQuery(`^INSERT INTO plans \(plan_date, user_id\) VALUES \(\$1, \$2\) RETURNING plan_id$`).
|
||||||
|
WithArgs(planDate, userID).
|
||||||
|
WillReturnRows(rows)
|
||||||
|
mock.ExpectCommit()
|
||||||
|
|
||||||
|
// function under test
|
||||||
|
insertedId, err := str.InsertPlan(plan)
|
||||||
|
// check results
|
||||||
|
assert.Nil(err)
|
||||||
|
assert.EqualValues(idToUse, insertedId)
|
||||||
|
if err := mock.ExpectationsWereMet(); err != nil {
|
||||||
|
t.Errorf("unfulfilled expectations: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInsertPlanErr(t *testing.T) {
|
||||||
|
// setup
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
str, mock := getDbMock(t)
|
||||||
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
|
userID := 2
|
||||||
|
plan := &models.Plan{PlanDate: &planDate, UserID: 2}
|
||||||
|
|
||||||
|
mock.ExpectBegin()
|
||||||
|
mock.ExpectQuery(`^INSERT INTO plans \(plan_date, user_id\) VALUES \(\$1, \$2\) RETURNING plan_id$`).
|
||||||
|
WithArgs(planDate, userID).
|
||||||
|
WillReturnError(fmt.Errorf("example error"))
|
||||||
|
mock.ExpectRollback()
|
||||||
|
|
||||||
|
// function under test
|
||||||
|
_, err := str.InsertPlan(plan)
|
||||||
|
// check results
|
||||||
|
assert.NotNil(err)
|
||||||
|
if err := mock.ExpectationsWereMet(); err != nil {
|
||||||
|
t.Errorf("unfulfilled expectations: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInsertPlanCommitErr(t *testing.T) {
|
||||||
|
// setup
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
str, mock := getDbMock(t)
|
||||||
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
|
userID := 2
|
||||||
|
plan := &models.Plan{PlanDate: &planDate, UserID: int64(userID)}
|
||||||
|
idToUse := 8
|
||||||
|
|
||||||
|
rows := sqlmock.NewRows([]string{"plan_id"}).AddRow(idToUse)
|
||||||
|
|
||||||
|
mock.ExpectBegin()
|
||||||
|
mock.ExpectQuery(`^INSERT INTO plans \(plan_date, user_id\) VALUES \(\$1, \$2\) RETURNING plan_id$`).
|
||||||
|
WithArgs(planDate, userID).
|
||||||
|
WillReturnRows(rows)
|
||||||
|
mock.ExpectCommit().WillReturnError(fmt.Errorf("another error example"))
|
||||||
|
|
||||||
|
// function under test
|
||||||
|
_, err := str.InsertPlan(plan)
|
||||||
|
// check results
|
||||||
|
assert.NotNil(err)
|
||||||
|
if err := mock.ExpectationsWereMet(); err != nil {
|
||||||
|
t.Errorf("unfulfilled expectations: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestErrPlanByID(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
idToUse := 1
|
||||||
|
|
||||||
|
str, mock := getDbMock(t)
|
||||||
|
|
||||||
|
mock.ExpectQuery(`^SELECT plan_id, plan_date, user_id FROM plans WHERE plan_id = \$1$`).WithArgs(idToUse).WillReturnError(fmt.Errorf("example error"))
|
||||||
|
|
||||||
|
plan, err := str.SelectPlanByID(idToUse)
|
||||||
|
assert.NotNil(err)
|
||||||
|
assert.Nil(plan)
|
||||||
|
|
||||||
|
if err := mock.ExpectationsWereMet(); err != nil {
|
||||||
|
t.Errorf("unfulfilled expectations: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestErrPlans(t *testing.T) {
|
||||||
|
// set up tests
|
||||||
|
assert := assert.New(t)
|
||||||
|
str, mock := getDbMock(t)
|
||||||
|
|
||||||
|
mock.ExpectQuery(`^SELECT plan_id, plan_date, user_id FROM plans$`).WillReturnError(fmt.Errorf("example error"))
|
||||||
|
// function under test
|
||||||
|
plans, err := str.SelectPlans()
|
||||||
|
// test results
|
||||||
|
assert.Nil(plans)
|
||||||
|
assert.NotNil(err)
|
||||||
|
if err := mock.ExpectationsWereMet(); err != nil {
|
||||||
|
t.Errorf("unfulfilled expectations: %s", err)
|
||||||
|
}
|
||||||
|
}
|
@ -24,149 +24,6 @@ func getDbMock(t *testing.T) (models.Store, sqlmock.Sqlmock) {
|
|||||||
return str, mock
|
return str, mock
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSelectPlans(t *testing.T) {
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
currentTime := time.Now()
|
|
||||||
idToUse := 1
|
|
||||||
|
|
||||||
str, mock := getDbMock(t)
|
|
||||||
|
|
||||||
rows := sqlmock.NewRows([]string{"plan_id", "plan_date"}).AddRow(idToUse, currentTime)
|
|
||||||
mock.ExpectQuery("^SELECT plan_id, plan_date FROM plans$").WillReturnRows(rows)
|
|
||||||
|
|
||||||
plans, err := str.SelectPlans()
|
|
||||||
assert.Nil(err)
|
|
||||||
assert.Equal(1, len(plans))
|
|
||||||
plan := plans[0]
|
|
||||||
assert.EqualValues(idToUse, plan.PlanID)
|
|
||||||
assert.Equal(currentTime, *plan.PlanDate)
|
|
||||||
|
|
||||||
if err := mock.ExpectationsWereMet(); err != nil {
|
|
||||||
t.Errorf("unfulfilled expectations: %s", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSelectPlanByID(t *testing.T) {
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
currentTime := time.Now()
|
|
||||||
idToUse := 1
|
|
||||||
|
|
||||||
str, mock := getDbMock(t)
|
|
||||||
|
|
||||||
rows := sqlmock.NewRows([]string{"plan_id", "plan_date"}).AddRow(idToUse, currentTime)
|
|
||||||
mock.ExpectQuery("^SELECT plan_id, plan_date FROM plans WHERE plan_id = \\$1$").WithArgs(idToUse).WillReturnRows(rows)
|
|
||||||
|
|
||||||
plan, err := str.SelectPlanByID(idToUse)
|
|
||||||
assert.Nil(err)
|
|
||||||
assert.EqualValues(idToUse, plan.PlanID)
|
|
||||||
assert.Equal(currentTime, *plan.PlanDate)
|
|
||||||
|
|
||||||
if err := mock.ExpectationsWereMet(); err != nil {
|
|
||||||
t.Errorf("unfulfilled expectations: %s", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestInsertPlan(t *testing.T) {
|
|
||||||
// setup
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
str, mock := getDbMock(t)
|
|
||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
|
||||||
plan := &models.Plan{PlanDate: &planDate}
|
|
||||||
|
|
||||||
idToUse := 8
|
|
||||||
|
|
||||||
rows := sqlmock.NewRows([]string{"plan_id"}).AddRow(8)
|
|
||||||
|
|
||||||
mock.ExpectBegin()
|
|
||||||
mock.ExpectQuery("^INSERT INTO plans \\(plan_date\\) VALUES \\(\\$1\\) RETURNING plan_id$").
|
|
||||||
WithArgs(planDate).
|
|
||||||
WillReturnRows(rows)
|
|
||||||
mock.ExpectCommit()
|
|
||||||
|
|
||||||
// function under test
|
|
||||||
insertedId, err := str.InsertPlan(plan)
|
|
||||||
// check results
|
|
||||||
assert.Nil(err)
|
|
||||||
assert.EqualValues(idToUse, insertedId)
|
|
||||||
if err := mock.ExpectationsWereMet(); err != nil {
|
|
||||||
t.Errorf("unfulfilled expectations: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestInsertPlanErr(t *testing.T) {
|
|
||||||
// setup
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
str, mock := getDbMock(t)
|
|
||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
|
||||||
plan := &models.Plan{PlanDate: &planDate}
|
|
||||||
|
|
||||||
mock.ExpectBegin()
|
|
||||||
mock.ExpectQuery("^INSERT INTO plans \\(plan_date\\) VALUES \\(\\$1\\) RETURNING plan_id$").
|
|
||||||
WithArgs(planDate).
|
|
||||||
WillReturnError(fmt.Errorf("example error"))
|
|
||||||
mock.ExpectRollback()
|
|
||||||
|
|
||||||
// function under test
|
|
||||||
_, err := str.InsertPlan(plan)
|
|
||||||
// check results
|
|
||||||
assert.NotNil(err)
|
|
||||||
if err := mock.ExpectationsWereMet(); err != nil {
|
|
||||||
t.Errorf("unfulfilled expectations: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestInsertPlanCommitErr(t *testing.T) {
|
|
||||||
// setup
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
str, mock := getDbMock(t)
|
|
||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
|
||||||
plan := &models.Plan{PlanDate: &planDate}
|
|
||||||
|
|
||||||
idToUse := 8
|
|
||||||
|
|
||||||
rows := sqlmock.NewRows([]string{"plan_id"}).AddRow(idToUse)
|
|
||||||
|
|
||||||
mock.ExpectBegin()
|
|
||||||
mock.ExpectQuery("^INSERT INTO plans \\(plan_date\\) VALUES \\(\\$1\\) RETURNING plan_id$").
|
|
||||||
WithArgs(planDate).
|
|
||||||
WillReturnRows(rows)
|
|
||||||
mock.ExpectCommit().WillReturnError(fmt.Errorf("another error example"))
|
|
||||||
|
|
||||||
// function under test
|
|
||||||
_, err := str.InsertPlan(plan)
|
|
||||||
// check results
|
|
||||||
assert.NotNil(err)
|
|
||||||
if err := mock.ExpectationsWereMet(); err != nil {
|
|
||||||
t.Errorf("unfulfilled expectations: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestErrPlanByID(t *testing.T) {
|
|
||||||
assert := assert.New(t)
|
|
||||||
|
|
||||||
idToUse := 1
|
|
||||||
|
|
||||||
str, mock := getDbMock(t)
|
|
||||||
|
|
||||||
mock.ExpectQuery("^SELECT plan_id, plan_date FROM plans WHERE plan_id = \\$1$").WithArgs(idToUse).WillReturnError(fmt.Errorf("example error"))
|
|
||||||
|
|
||||||
plan, err := str.SelectPlanByID(idToUse)
|
|
||||||
assert.NotNil(err)
|
|
||||||
assert.Nil(plan)
|
|
||||||
|
|
||||||
if err := mock.ExpectationsWereMet(); err != nil {
|
|
||||||
t.Errorf("unfulfilled expectations: %s", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSelectActions(t *testing.T) {
|
func TestSelectActions(t *testing.T) {
|
||||||
// set up test
|
// set up test
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
@ -338,22 +195,6 @@ func TestSelectActionById(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestErrPlans(t *testing.T) {
|
|
||||||
// set up tests
|
|
||||||
assert := assert.New(t)
|
|
||||||
str, mock := getDbMock(t)
|
|
||||||
|
|
||||||
mock.ExpectQuery("^SELECT plan_id, plan_date FROM plans$").WillReturnError(fmt.Errorf("example error"))
|
|
||||||
// function under test
|
|
||||||
plans, err := str.SelectPlans()
|
|
||||||
// test results
|
|
||||||
assert.Nil(plans)
|
|
||||||
assert.NotNil(err)
|
|
||||||
if err := mock.ExpectationsWereMet(); err != nil {
|
|
||||||
t.Errorf("unfulfilled expectations: %s", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestErrActions(t *testing.T) {
|
func TestErrActions(t *testing.T) {
|
||||||
// set up tests
|
// set up tests
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user