Skip to content

Commit 59b04c1

Browse files
authored
fix: coderdtest: increase ForceCancelInterval (coder#3085)
Two coderd unit tests (TestPatchCancelTemplateVersion/Success and TestPatchCancelWorkspaceBuild) implied erroneously that the job was canceled successfully. This is not the case, as these unit tests do not include a Provision_Complete response in the input to the echo provisioner. Now explicitly checking the job error and bumping the force cancel interval to be longer. Fixes coder#3083.
1 parent e019058 commit 59b04c1

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

coderd/coderdtest/coderdtest.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ func NewProvisionerDaemon(t *testing.T, coderAPI *coderd.API) io.Closer {
230230
Logger: slogtest.Make(t, nil).Named("provisionerd").Leveled(slog.LevelDebug),
231231
PollInterval: 10 * time.Millisecond,
232232
UpdateInterval: 25 * time.Millisecond,
233-
ForceCancelInterval: 25 * time.Millisecond,
233+
ForceCancelInterval: time.Second,
234234
Provisioners: provisionerd.Provisioners{
235235
string(database.ProvisionerTypeEcho): proto.NewDRPCProvisionerClient(provisionersdk.Conn(echoClient)),
236236
},

coderd/templateversions_test.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,9 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
126126
require.ErrorAs(t, err, &apiErr)
127127
require.Equal(t, http.StatusPreconditionFailed, apiErr.StatusCode())
128128
})
129-
t.Run("Success", func(t *testing.T) {
129+
// TODO(Cian): until we are able to test cancellation properly, validating
130+
// Running -> Canceling is the best we can do for now.
131+
t.Run("Canceling", func(t *testing.T) {
130132
t.Parallel()
131133
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerD: true})
132134
user := coderdtest.CreateFirstUser(t, client)
@@ -150,8 +152,11 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
150152
require.Eventually(t, func() bool {
151153
var err error
152154
version, err = client.TemplateVersion(context.Background(), version.ID)
153-
require.NoError(t, err)
154-
return version.Job.Status == codersdk.ProvisionerJobCanceled
155+
return assert.NoError(t, err) &&
156+
// The job will never actually cancel successfully because it will never send a
157+
// provision complete response.
158+
assert.Empty(t, version.Job.Error) &&
159+
version.Job.Status == codersdk.ProvisionerJobCanceling
155160
}, 5*time.Second, 25*time.Millisecond)
156161
})
157162
}

coderd/workspacebuilds_test.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"time"
1010

1111
"github.com/google/uuid"
12+
"github.com/stretchr/testify/assert"
1213
"github.com/stretchr/testify/require"
1314

1415
"github.com/coder/coder/coderd/coderdtest"
@@ -228,8 +229,11 @@ func TestPatchCancelWorkspaceBuild(t *testing.T) {
228229
require.Eventually(t, func() bool {
229230
var err error
230231
build, err = client.WorkspaceBuild(context.Background(), build.ID)
231-
require.NoError(t, err)
232-
return build.Job.Status == codersdk.ProvisionerJobCanceled
232+
return assert.NoError(t, err) &&
233+
// The job will never actually cancel successfully because it will never send a
234+
// provision complete response.
235+
assert.Empty(t, build.Job.Error) &&
236+
build.Job.Status == codersdk.ProvisionerJobCanceling
233237
}, 5*time.Second, 25*time.Millisecond)
234238
}
235239

0 commit comments

Comments
 (0)