Skip to content

Commit 59b04c1

Browse files
authored
fix: coderdtest: increase ForceCancelInterval (#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 #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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 8 additions & 3 deletions
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

Lines changed: 6 additions & 2 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy