diff --git a/models/action.go b/models/action.go index 3e2962b..c32cf7e 100644 --- a/models/action.go +++ b/models/action.go @@ -8,6 +8,10 @@ import ( type Action struct { ActionID int64 ActionDescription string + EstimatedChunks int + CompletedChunks int + CompletedOn time.Time + PlanID int CreatedAt time.Time UpdatedAt time.Time } diff --git a/store/migrations/000001_create_action_table.up.sql b/store/migrations/000001_create_action_table.up.sql index 3fce461..b00d482 100644 --- a/store/migrations/000001_create_action_table.up.sql +++ b/store/migrations/000001_create_action_table.up.sql @@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS actions( completed_on TIMESTAMP WITH TIME ZONE, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, - plan int REFERENCES plans(plan_id) + plan_id int REFERENCES plans(plan_id) ); diff --git a/store/postgres.go b/store/postgres.go index ccf979a..66ef86b 100644 --- a/store/postgres.go +++ b/store/postgres.go @@ -20,7 +20,7 @@ func GetPostgresStore(db *sqlx.DB) (models.Store, error) { func (store *postgresStore) SelectActions() ([]*models.Action, error) { actions := make([]*models.Action, 0) - err := store.db.Select(&actions, "SELECT action_id, action_description, created_at, updated_at FROM actions") + err := store.db.Select(&actions, "SELECT action_id, action_description, estimated_chunks, completed_chunks, completed_on, created_at, updated_at, plan_id FROM actions") if err != nil { return nil, err } diff --git a/store/postgres_test.go b/store/postgres_test.go index 5a5bdb7..f67a731 100644 --- a/store/postgres_test.go +++ b/store/postgres_test.go @@ -53,15 +53,26 @@ func TestSelectActions(t *testing.T) { createTime, _ := time.Parse("2006-01-02", "2020-12-31") updateTime, _ := time.Parse("2006-01-02", "2021-01-01") + completeTime, _ := time.Parse("2006-01-02", "2021-01-05") idToUse := 1 + estChunks := 5 + compChunks := 7 desc := "Howdy, partner." str, mock := getDbMock(t) - rows := sqlmock.NewRows([]string{"action_id", "action_description", "created_at", "updated_at"}). - AddRow(idToUse, desc, createTime, updateTime). - AddRow(idToUse+1, desc, createTime, updateTime) - mock.ExpectQuery("^SELECT action_id, action_description, created_at, updated_at FROM actions$").WillReturnRows(rows) + rows := sqlmock.NewRows([]string{ + "action_id", + "action_description", + "estimated_chunks", + "completed_chunks", + "completed_on", + "created_at", + "updated_at", + "plan_id"}). + AddRow(idToUse, desc, estChunks, compChunks, completeTime, createTime, updateTime, idToUse). + AddRow(idToUse+1, desc, estChunks, compChunks, completeTime, createTime, updateTime, idToUse) + mock.ExpectQuery("^SELECT action_id, action_description, estimated_chunks, completed_chunks, completed_on, created_at, updated_at, plan_id FROM actions$").WillReturnRows(rows) // function under test actions, err := str.SelectActions() @@ -72,8 +83,12 @@ func TestSelectActions(t *testing.T) { action := actions[0] assert.EqualValues(idToUse, action.ActionID) assert.Equal(desc, action.ActionDescription) + assert.Equal(estChunks, action.EstimatedChunks) + assert.Equal(compChunks, action.CompletedChunks) + assert.Equal(completeTime, action.CompletedOn) assert.Equal(createTime, action.CreatedAt) assert.Equal(updateTime, action.UpdatedAt) + assert.Equal(idToUse, action.PlanID) if err := mock.ExpectationsWereMet(); err != nil { t.Errorf("unfulfilled expectations: %s", err) @@ -101,7 +116,7 @@ func TestErrActions(t *testing.T) { assert := assert.New(t) str, mock := getDbMock(t) - mock.ExpectQuery("^SELECT action_id, action_description, created_at, updated_at FROM actions$").WillReturnError(fmt.Errorf("example error")) + mock.ExpectQuery("^SELECT action_id, action_description, estimated_chunks, completed_chunks, completed_on, created_at, updated_at, plan_id FROM actions$").WillReturnError(fmt.Errorf("example error")) // function under test actions, err := str.SelectActions() // test results