diff --git a/internal/cmd/config/config_test.go b/internal/cmd/config/config_test.go index 4a84a35edf..d6aa6e6ae5 100644 --- a/internal/cmd/config/config_test.go +++ b/internal/cmd/config/config_test.go @@ -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) } }) }