Skip to content

Commit 73655ab

Browse files
committed
Fix scim and workspace agent unit tests
1 parent 44ca906 commit 73655ab

File tree

3 files changed

+73
-12
lines changed

3 files changed

+73
-12
lines changed

coderd/database/dbgen/generator.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,47 @@ func APIKey(t *testing.T, db database.Store, seed database.APIKey) (key database
6666
return key, fmt.Sprintf("%s-%s", key.ID, secret)
6767
}
6868

69+
func WorkspaceAgent(t *testing.T, db database.Store, orig database.WorkspaceAgent) database.WorkspaceAgent {
70+
workspace, err := db.InsertWorkspaceAgent(context.Background(), database.InsertWorkspaceAgentParams{
71+
ID: takeFirst(orig.ID, uuid.New()),
72+
CreatedAt: takeFirst(orig.CreatedAt, time.Now()),
73+
UpdatedAt: takeFirst(orig.UpdatedAt, time.Now()),
74+
Name: takeFirst(orig.Name, namesgenerator.GetRandomName(1)),
75+
ResourceID: takeFirst(orig.ResourceID, uuid.New()),
76+
AuthToken: takeFirst(orig.AuthToken, uuid.New()),
77+
AuthInstanceID: sql.NullString{
78+
String: takeFirst(orig.AuthInstanceID.String, ""),
79+
Valid: takeFirst(orig.AuthInstanceID.Valid, false),
80+
},
81+
Architecture: takeFirst(orig.Architecture, "amd64"),
82+
EnvironmentVariables: pqtype.NullRawMessage{
83+
RawMessage: takeFirstBytes(orig.EnvironmentVariables.RawMessage, []byte("{}")),
84+
Valid: takeFirst(orig.EnvironmentVariables.Valid, false),
85+
},
86+
OperatingSystem: takeFirst(orig.OperatingSystem, "linux"),
87+
StartupScript: sql.NullString{
88+
String: takeFirst(orig.StartupScript.String, ""),
89+
Valid: takeFirst(orig.StartupScript.Valid, false),
90+
},
91+
Directory: takeFirst(orig.Directory, ""),
92+
InstanceMetadata: pqtype.NullRawMessage{
93+
RawMessage: takeFirstBytes(orig.ResourceMetadata.RawMessage, []byte("{}")),
94+
Valid: takeFirst(orig.ResourceMetadata.Valid, false),
95+
},
96+
ResourceMetadata: pqtype.NullRawMessage{
97+
RawMessage: takeFirstBytes(orig.ResourceMetadata.RawMessage, []byte("{}")),
98+
Valid: takeFirst(orig.ResourceMetadata.Valid, false),
99+
},
100+
ConnectionTimeoutSeconds: takeFirst(orig.ConnectionTimeoutSeconds, 3600),
101+
TroubleshootingURL: takeFirst(orig.TroubleshootingURL, "https://example.com"),
102+
MOTDFile: takeFirst(orig.TroubleshootingURL, ""),
103+
LoginBeforeReady: takeFirst(orig.LoginBeforeReady, false),
104+
StartupScriptTimeoutSeconds: takeFirst(orig.StartupScriptTimeoutSeconds, 3600),
105+
})
106+
require.NoError(t, err, "insert workspace agent")
107+
return workspace
108+
}
109+
69110
func Workspace(t *testing.T, db database.Store, orig database.Workspace) database.Workspace {
70111
workspace, err := db.InsertWorkspace(context.Background(), database.InsertWorkspaceParams{
71112
ID: takeFirst(orig.ID, uuid.New()),

coderd/database/dbgen/generator_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,13 @@ func TestGenerator(t *testing.T) {
7070
require.Equal(t, exp, must(db.GetWorkspaceByID(context.Background(), exp.ID)))
7171
})
7272

73+
t.Run("WorkspaceAgent", func(t *testing.T) {
74+
t.Parallel()
75+
db := databasefake.New()
76+
exp := dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{})
77+
require.Equal(t, exp, must(db.GetWorkspaceAgentByID(context.Background(), exp.ID)))
78+
})
79+
7380
t.Run("Template", func(t *testing.T) {
7481
t.Parallel()
7582
db := databasefake.New()

coderd/httpmw/workspaceagent_test.go

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package httpmw_test
22

33
import (
4-
"context"
54
"net/http"
65
"net/http/httptest"
76
"testing"
@@ -12,18 +11,18 @@ import (
1211

1312
"github.com/coder/coder/coderd/database"
1413
"github.com/coder/coder/coderd/database/databasefake"
14+
"github.com/coder/coder/coderd/database/dbgen"
1515
"github.com/coder/coder/coderd/httpmw"
1616
"github.com/coder/coder/codersdk"
1717
)
1818

1919
func TestWorkspaceAgent(t *testing.T) {
2020
t.Parallel()
2121

22-
setup := func(db database.Store) (*http.Request, uuid.UUID) {
23-
token := uuid.New()
22+
setup := func(db database.Store, token uuid.UUID) *http.Request {
2423
r := httptest.NewRequest("GET", "/", nil)
2524
r.Header.Set(codersdk.SessionTokenHeader, token.String())
26-
return r, token
25+
return r
2726
}
2827

2928
t.Run("None", func(t *testing.T) {
@@ -34,7 +33,7 @@ func TestWorkspaceAgent(t *testing.T) {
3433
httpmw.ExtractWorkspaceAgent(db),
3534
)
3635
rtr.Get("/", nil)
37-
r, _ := setup(db)
36+
r := setup(db, uuid.New())
3837
rw := httptest.NewRecorder()
3938
rtr.ServeHTTP(rw, r)
4039

@@ -46,6 +45,25 @@ func TestWorkspaceAgent(t *testing.T) {
4645
t.Run("Found", func(t *testing.T) {
4746
t.Parallel()
4847
db := databasefake.New()
48+
49+
var (
50+
user = dbgen.User(t, db, database.User{})
51+
workspace = dbgen.Workspace(t, db, database.Workspace{
52+
OwnerID: user.ID,
53+
})
54+
job = dbgen.ProvisionerJob(t, db, database.ProvisionerJob{})
55+
resource = dbgen.WorkspaceResource(t, db, database.WorkspaceResource{
56+
JobID: job.ID,
57+
})
58+
_ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
59+
WorkspaceID: workspace.ID,
60+
JobID: job.ID,
61+
})
62+
agent = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{
63+
ResourceID: resource.ID,
64+
})
65+
)
66+
4967
rtr := chi.NewRouter()
5068
rtr.Use(
5169
httpmw.ExtractWorkspaceAgent(db),
@@ -54,13 +72,8 @@ func TestWorkspaceAgent(t *testing.T) {
5472
_ = httpmw.WorkspaceAgent(r)
5573
rw.WriteHeader(http.StatusOK)
5674
})
57-
r, token := setup(db)
58-
_, err := db.InsertWorkspaceAgent(context.Background(), database.InsertWorkspaceAgentParams{
59-
ID: uuid.New(),
60-
AuthToken: token,
61-
})
62-
require.NoError(t, err)
63-
require.NoError(t, err)
75+
r := setup(db, agent.AuthToken)
76+
6477
rw := httptest.NewRecorder()
6578
rtr.ServeHTTP(rw, r)
6679

0 commit comments

Comments
 (0)