mirror of https://github.com/coder/coder.git
* Fix test flake introduced by #9264 Signed-off-by: Spike Curtis <spike@coder.com> * change check to match suffix Signed-off-by: Spike Curtis <spike@coder.com> --------- Signed-off-by: Spike Curtis <spike@coder.com>
This commit is contained in:
parent
058fb2ecf0
commit
e7a231e44f
|
@ -308,11 +308,13 @@ func TestPatchCancelTemplateVersion(t *testing.T) {
|
|||
require.Eventually(t, func() bool {
|
||||
var err error
|
||||
version, err = client.TemplateVersion(ctx, version.ID)
|
||||
// job gets marked Failed when there is an Error; in practice we never get to Status = Canceled
|
||||
// because provisioners report an Error when canceled. We check the Error string to ensure we don't mask
|
||||
// other errors in this test.
|
||||
t.Logf("got version %s | %s", version.Job.Error, version.Job.Status)
|
||||
return assert.NoError(t, err) &&
|
||||
// The job will never actually cancel successfully because it will never send a
|
||||
// provision complete response.
|
||||
assert.Empty(t, version.Job.Error) &&
|
||||
version.Job.Status == codersdk.ProvisionerJobCanceling
|
||||
strings.HasSuffix(version.Job.Error, "canceled") &&
|
||||
version.Job.Status == codersdk.ProvisionerJobFailed
|
||||
}, testutil.WaitShort, testutil.IntervalFast)
|
||||
})
|
||||
}
|
||||
|
|
|
@ -14,6 +14,8 @@ import (
|
|||
"github.com/stretchr/testify/require"
|
||||
"golang.org/x/xerrors"
|
||||
|
||||
"cdr.dev/slog"
|
||||
"cdr.dev/slog/sloggers/slogtest"
|
||||
"github.com/coder/coder/v2/coderd/audit"
|
||||
"github.com/coder/coder/v2/coderd/coderdtest"
|
||||
"github.com/coder/coder/v2/coderd/database"
|
||||
|
@ -412,7 +414,10 @@ func TestPatchCancelWorkspaceBuild(t *testing.T) {
|
|||
t.Run("User is not allowed to cancel", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
|
||||
// need to include our own logger because the provisioner (rightly) drops error logs when we shut down the
|
||||
// test with a build in progress.
|
||||
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
|
||||
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true, Logger: &logger})
|
||||
owner := coderdtest.CreateFirstUser(t, client)
|
||||
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, &echo.Responses{
|
||||
Parse: echo.ParseComplete,
|
||||
|
|
|
@ -163,8 +163,12 @@ func Test_Runner(t *testing.T) {
|
|||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||
defer cancel()
|
||||
|
||||
// need to include our own logger because the provisioner (rightly) drops error logs when we shut down the
|
||||
// test with a build in progress.
|
||||
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
|
||||
client := coderdtest.New(t, &coderdtest.Options{
|
||||
IncludeProvisionerDaemon: true,
|
||||
Logger: &logger,
|
||||
})
|
||||
user := coderdtest.CreateFirstUser(t, client)
|
||||
|
||||
|
@ -251,14 +255,17 @@ func Test_Runner(t *testing.T) {
|
|||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, build := range builds {
|
||||
for i, build := range builds {
|
||||
t.Logf("checking build #%d: %s | %s", i, build.Transition, build.Job.Status)
|
||||
// One of the builds should be for creating the workspace,
|
||||
if build.Transition != codersdk.WorkspaceTransitionStart {
|
||||
continue
|
||||
}
|
||||
|
||||
// And it should be either canceled or canceling
|
||||
if build.Job.Status == codersdk.ProvisionerJobCanceled || build.Job.Status == codersdk.ProvisionerJobCanceling {
|
||||
// And it should be either failed (Echo returns an error when job is canceled), canceling, or canceled.
|
||||
if build.Job.Status == codersdk.ProvisionerJobFailed ||
|
||||
build.Job.Status == codersdk.ProvisionerJobCanceling ||
|
||||
build.Job.Status == codersdk.ProvisionerJobCanceled {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue