Skip to content

Commit 01e9fb0

Browse files
committed
Fix test
1 parent 8704afd commit 01e9fb0

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

coderd/workspaces_test.go

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package coderd_test
22

33
import (
4+
"bytes"
45
"context"
56
"database/sql"
7+
"encoding/json"
68
"fmt"
79
"net/http"
810
"os"
@@ -564,7 +566,7 @@ func TestWorkspaceByOwnerAndName(t *testing.T) {
564566
func TestWorkspaceFilterAllStatus(t *testing.T) {
565567
t.Parallel()
566568
if os.Getenv("DB") != "" {
567-
t.Skip(`This test takes too long with an actual database`)
569+
t.Skip(`This test takes too long with an actual database. Takes 10s on local machine`)
568570
}
569571

570572
ctx := dbauthz.AsSystemRestricted(context.Background())
@@ -607,8 +609,14 @@ func TestWorkspaceFilterAllStatus(t *testing.T) {
607609
workspace.TemplateID = template.ID
608610
workspace = dbgen.Workspace(t, db, workspace)
609611

612+
jobID := uuid.New()
613+
job.ID = jobID
610614
job.Type = database.ProvisionerJobTypeWorkspaceBuild
611615
job.OrganizationID = owner.OrganizationID
616+
// Need to prevent acquire from getting this job.
617+
job.Tags = dbtype.StringMap{
618+
jobID.String(): "true",
619+
}
612620
job = dbgen.ProvisionerJob(t, db, job)
613621

614622
build := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
@@ -664,14 +672,23 @@ func TestWorkspaceFilterAllStatus(t *testing.T) {
664672
CompletedAt: sql.NullTime{Time: time.Now(), Valid: true},
665673
}, database.WorkspaceTransitionStop)
666674

667-
// failed
675+
// failed -- delete
668676
_, _, _ = makeWorkspace(database.Workspace{
669-
Name: string(database.WorkspaceStatusFailed),
677+
Name: string(database.WorkspaceStatusFailed) + "-deleted",
670678
}, database.ProvisionerJob{
671679
StartedAt: sql.NullTime{Time: time.Now().Add(time.Second * -2), Valid: true},
672680
CompletedAt: sql.NullTime{Time: time.Now(), Valid: true},
673681
Error: sql.NullString{String: "Some error", Valid: true},
674-
}, database.WorkspaceTransitionStart)
682+
}, database.WorkspaceTransitionDelete)
683+
684+
// failed -- stop
685+
_, _, _ = makeWorkspace(database.Workspace{
686+
Name: string(database.WorkspaceStatusFailed) + "-stopped",
687+
}, database.ProvisionerJob{
688+
StartedAt: sql.NullTime{Time: time.Now().Add(time.Second * -2), Valid: true},
689+
CompletedAt: sql.NullTime{Time: time.Now(), Valid: true},
690+
Error: sql.NullString{String: "Some error", Valid: true},
691+
}, database.WorkspaceTransitionStop)
675692

676693
// canceling
677694
_, _, _ = makeWorkspace(database.Workspace{
@@ -713,7 +730,13 @@ func TestWorkspaceFilterAllStatus(t *testing.T) {
713730
// Make sure all workspaces have the correct status
714731
var statuses []codersdk.WorkspaceStatus
715732
for _, apiWorkspace := range workspaces.Workspaces {
716-
assert.Equal(t, apiWorkspace.Name, string(apiWorkspace.LatestBuild.Status), "workspace has incorrect status")
733+
expStatus := strings.Split(apiWorkspace.Name, "-")
734+
if !assert.Equal(t, expStatus[0], string(apiWorkspace.LatestBuild.Status), "workspace has incorrect status") {
735+
d, _ := json.Marshal(apiWorkspace)
736+
var buf bytes.Buffer
737+
_ = json.Indent(&buf, d, "", "\t")
738+
t.Logf("Incorrect workspace: %s", buf.String())
739+
}
717740
statuses = append(statuses, apiWorkspace.LatestBuild.Status)
718741
}
719742

0 commit comments

Comments
 (0)