Skip to content

Commit

Permalink
add test for stringStatus validation
Browse files Browse the repository at this point in the history
  • Loading branch information
uturunku1 committed Mar 4, 2022
1 parent ad2d6da commit d4290df
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
23 changes: 21 additions & 2 deletions admin_run.go
Expand Up @@ -134,11 +134,30 @@ func (o *AdminRunsListOptions) valid() error {
func validateAdminRunFilterParams(runStatus string) error {
// For the platform, an invalid filter value is a semantically understood query that returns an empty set, no error, no warning. But for go-tfe, an invalid value is good enough reason to error prior to a network call to the platform:
if validString(&runStatus) {
runStatuses := strings.Split(runStatus, ",")
sanitizedRunstatus := strings.TrimSpace(runStatus)
runStatuses := strings.Split(sanitizedRunstatus, ",")
// iterate over our statuses, and ensure it is valid.
for _, status := range runStatuses {
switch status {
case string(RunApplied), string(RunApplyQueued), string(RunApplying), string(RunCanceled), string(RunConfirmed), string(RunCostEstimate), string(RunCostEstimating), string(RunDiscarded), string(RunErrored), string(RunPending), string(RunPlanQueued), string(RunPlanned), string(RunPlannedAndFinished), string(RunPlanning), string(RunPolicyChecked), string(RunPolicyChecking), string(RunPolicyOverride), string(RunPolicySoftFailed):
case string(RunApplied),
string(RunApplyQueued),
string(RunApplying),
string(RunCanceled),
string(RunConfirmed),
string(RunCostEstimate),
string(RunCostEstimating),
string(RunDiscarded),
string(RunErrored),
string(RunPending),
string(RunPlanQueued),
string(RunPlanned),
string(RunPlannedAndFinished),
string(RunPlanning),
string(RunPolicyChecked),
string(RunPolicyChecking),
string(RunPolicyOverride),
string(RunPolicySoftFailed),
"":
// do nothing
default:
return fmt.Errorf(`invalid value "%s" for run status`, status)
Expand Down
9 changes: 9 additions & 0 deletions admin_run_integration_test.go
Expand Up @@ -252,6 +252,15 @@ func TestAdminRuns_AdminRunsListOptions_valid(t *testing.T) {
err := opts.valid()
assert.Error(t, err)
})

t.Run("has trailing comma and trailing space", func(t *testing.T) {
opts := AdminRunsListOptions{
RunStatus: "pending, ",
}

err := opts.valid()
assert.NoError(t, err)
})
}

func TestAdminRun_ForceCancel_Marshal(t *testing.T) {
Expand Down

0 comments on commit d4290df

Please sign in to comment.