0 is a valid value

pull/5007/head
Sorawis Nilparuk 2 years ago
parent 3d7f20e6c6
commit a17cb69d72

@ -2834,11 +2834,13 @@ func TestSetupWorkerInitialUpstreams(t *testing.T) {
func TestGetDownstreamWorkersTimeout(t *testing.T) {
tests := []struct {
name string
in string
wantController time.Duration
wantWorker time.Duration
assertErr func(error)
name string
in string
wantController bool
wantWorker bool
wantControllerTimeout time.Duration
wantWorkerTimeout time.Duration
assertErr func(*testing.T, error)
}{
{
name: "controller_valid_time_value",
@ -2847,9 +2849,11 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-controller"
get_downstream_workers_timeout = "10s"
}`,
wantController: 10 * time.Second,
wantWorker: 0,
assertErr: nil,
wantControllerTimeout: 10 * time.Second,
wantWorkerTimeout: 0,
wantController: true,
wantWorker: false,
assertErr: nil,
},
{
name: "worker_valid_time_value",
@ -2858,9 +2862,11 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-worker"
get_downstream_workers_timeout = "5s"
}`,
wantController: 0,
wantWorker: 5 * time.Second,
assertErr: nil,
wantControllerTimeout: 0,
wantWorkerTimeout: 5 * time.Second,
wantController: false,
wantWorker: true,
assertErr: nil,
},
{
name: "both_valid_time_value",
@ -2873,9 +2879,26 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-worker"
get_downstream_workers_timeout = "500ms"
}`,
wantController: 5 * time.Second,
wantWorker: 500 * time.Millisecond,
assertErr: nil,
wantControllerTimeout: 5 * time.Second,
wantWorkerTimeout: 500 * time.Millisecond,
wantController: true,
wantWorker: true,
assertErr: nil,
},
{
name: "both_unspecified_defaults_to_zero",
in: `
controller {
name = "example-controller"
}
worker {
name = "example-worker"
}`,
wantController: true,
wantWorker: true,
wantControllerTimeout: 0,
wantWorkerTimeout: 0,
assertErr: nil,
},
{
name: "controller_int_value_no_unit_assumes_seconds",
@ -2884,7 +2907,10 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-controller"
get_downstream_workers_timeout = 100
}`,
wantController: 100 * time.Second,
wantController: true,
wantWorker: false,
wantControllerTimeout: 100 * time.Second,
wantWorkerTimeout: 0,
},
{
name: "worker_int_value_no_unit_assumes_seconds",
@ -2893,7 +2919,9 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-worker"
get_downstream_workers_timeout = 30
}`,
wantWorker: 30 * time.Second,
wantController: false,
wantWorker: true,
wantWorkerTimeout: 30 * time.Second,
},
{
name: "controller_invalid_bool_value",
@ -2902,7 +2930,9 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-controller"
get_downstream_workers_timeout = true
}`,
assertErr: func(err error) {
wantController: true,
wantWorker: false,
assertErr: func(t *testing.T, err error) {
require.Error(t, err)
require.ErrorContains(t, err, `error trying to parse controller get_downstream_workers_timeout`)
},
@ -2914,7 +2944,9 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-worker"
get_downstream_workers_timeout = false
}`,
assertErr: func(err error) {
wantController: false,
wantWorker: true,
assertErr: func(t *testing.T, err error) {
require.Error(t, err)
require.ErrorContains(t, err, `error trying to parse worker get_downstream_workers_timeout`)
},
@ -2926,10 +2958,9 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-controller"
get_downstream_workers_timeout = ""
}`,
assertErr: func(err error) {
require.Error(t, err)
require.ErrorContains(t, err, `get downstream workers timeout must be greater than 0`)
},
wantController: true,
wantWorker: false,
wantControllerTimeout: 0,
},
{
name: "worker_invalid_empty_value",
@ -2938,10 +2969,9 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-worker"
get_downstream_workers_timeout = ""
}`,
assertErr: func(err error) {
require.Error(t, err)
require.ErrorContains(t, err, `get downstream workers timeout must be greater than 0`)
},
wantController: false,
wantWorker: true,
wantWorkerTimeout: 0,
},
{
name: "controller_invalid_zero_value",
@ -2950,10 +2980,9 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-controller"
get_downstream_workers_timeout = "0s"
}`,
assertErr: func(err error) {
require.Error(t, err)
require.ErrorContains(t, err, `get downstream workers timeout must be greater than 0`)
},
wantController: true,
wantWorker: false,
wantControllerTimeout: 0,
},
{
name: "worker_invalid_zero_value",
@ -2962,27 +2991,26 @@ func TestGetDownstreamWorkersTimeout(t *testing.T) {
name = "example-worker"
get_downstream_workers_timeout = "0s"
}`,
assertErr: func(err error) {
require.Error(t, err)
require.ErrorContains(t, err, `get downstream workers timeout must be greater than 0`)
},
wantController: false,
wantWorker: true,
wantWorkerTimeout: 0,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c, err := Parse(tt.in)
if tt.assertErr != nil {
tt.assertErr(err)
tt.assertErr(t, err)
return
}
require.NoError(t, err)
if tt.wantController != 0 {
if tt.wantController {
require.NotNil(t, c.Controller)
require.Equal(t, tt.wantController, c.Controller.GetDownstreamWorkersTimeoutDuration)
require.Equal(t, tt.wantControllerTimeout, c.Controller.GetDownstreamWorkersTimeoutDuration)
}
if tt.wantWorker != 0 {
if tt.wantWorker {
require.NotNil(t, c.Worker)
require.Equal(t, tt.wantWorker, c.Worker.GetDownstreamWorkersTimeoutDuration)
require.Equal(t, tt.wantWorkerTimeout, c.Worker.GetDownstreamWorkersTimeoutDuration)
}
})
}

Loading…
Cancel
Save