Skip to content

Commit 735e937

Browse files
committed
Fix tests
1 parent 6fe0dd0 commit 735e937

File tree

3 files changed

+83
-31
lines changed

3 files changed

+83
-31
lines changed

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4959,13 +4959,44 @@ func (s *MethodTestSuite) TestPrebuilds() {
49594959
template, policy.ActionUse,
49604960
).Errors(sql.ErrNoRows)
49614961
}))
4962-
s.Run("FindMatchingPresetID", s.Subtest(func(db database.Store, check *expects) {
4962+
s.Run("FindMatchingPresetID", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
4963+
t1 := testutil.Fake(s.T(), faker, database.Template{})
4964+
tv := testutil.Fake(s.T(), faker, database.TemplateVersion{TemplateID: uuid.NullUUID{UUID: t1.ID, Valid: true}})
4965+
dbm.EXPECT().FindMatchingPresetID(gomock.Any(), database.FindMatchingPresetIDParams{
4966+
TemplateVersionID: tv.ID,
4967+
ParameterNames: []string{"test"},
4968+
ParameterValues: []string{"test"},
4969+
}).Return(uuid.Nil, nil).AnyTimes()
4970+
dbm.EXPECT().GetTemplateVersionByID(gomock.Any(), tv.ID).Return(tv, nil).AnyTimes()
4971+
dbm.EXPECT().GetTemplateByID(gomock.Any(), t1.ID).Return(t1, nil).AnyTimes()
49634972
check.Args(database.FindMatchingPresetIDParams{
4964-
TemplateVersionID: uuid.New(),
4973+
TemplateVersionID: tv.ID,
49654974
ParameterNames: []string{"test"},
49664975
ParameterValues: []string{"test"},
4967-
}).Asserts(rbac.ResourceTemplate, policy.ActionRead)
4968-
}))
4976+
}).Asserts(tv.RBACObject(t1), policy.ActionRead).Returns(uuid.Nil)
4977+
}))
4978+
// s.Run("FindMatchingPresetID", s.Subtest(func(db database.Store, check *expects) {
4979+
// org := dbgen.Organization(s.T(), db, database.Organization{})
4980+
// user := dbgen.User(s.T(), db, database.User{})
4981+
// templateVersion := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
4982+
// OrganizationID: org.ID,
4983+
// CreatedBy: user.ID,
4984+
// })
4985+
// template := dbgen.Template(s.T(), db, database.Template{
4986+
// OrganizationID: org.ID,
4987+
// CreatedBy: user.ID,
4988+
// ActiveVersionID: templateVersion.ID,
4989+
// })
4990+
// db.UpdateTemplateActiveVersionByID(context.Background(), database.UpdateTemplateActiveVersionByIDParams{
4991+
// ID: template.ID,
4992+
// ActiveVersionID: templateVersion.ID,
4993+
// })
4994+
// check.Args(database.FindMatchingPresetIDParams{
4995+
// TemplateVersionID: templateVersion.ID,
4996+
// ParameterNames: []string{"test"},
4997+
// ParameterValues: []string{"test"},
4998+
// }).Asserts(templateVersion.RBACObject(template), policy.ActionRead)
4999+
// }))
49695000
s.Run("GetPrebuildMetrics", s.Subtest(func(_ database.Store, check *expects) {
49705001
check.Args().
49715002
Asserts(rbac.ResourceWorkspace.All(), policy.ActionRead)

coderd/workspacebuilds_test.go

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1638,45 +1638,59 @@ func TestPostWorkspaceBuild(t *testing.T) {
16381638

16391639
t.Run("SetsPresetID", func(t *testing.T) {
16401640
t.Parallel()
1641+
ctx := testutil.Context(t, testutil.WaitLong)
1642+
16411643
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
16421644
user := coderdtest.CreateFirstUser(t, client)
16431645
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
16441646
Parse: echo.ParseComplete,
16451647
ProvisionPlan: []*proto.Response{{
16461648
Type: &proto.Response_Plan{
16471649
Plan: &proto.PlanComplete{
1648-
Presets: []*proto.Preset{{
1649-
Name: "test",
1650-
}},
1650+
Presets: []*proto.Preset{
1651+
{
1652+
Name: "autodetected",
1653+
},
1654+
{
1655+
Name: "manual",
1656+
Parameters: []*proto.PresetParameter{
1657+
{
1658+
Name: "param1",
1659+
Value: "value1",
1660+
},
1661+
},
1662+
},
1663+
},
16511664
},
16521665
},
16531666
}},
16541667
ProvisionApply: echo.ApplyComplete,
16551668
})
16561669
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
16571670
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1658-
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
1659-
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
1660-
require.Nil(t, workspace.LatestBuild.TemplateVersionPresetID)
1661-
1662-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1663-
defer cancel()
16641671

16651672
presets, err := client.TemplateVersionPresets(ctx, version.ID)
16661673
require.NoError(t, err)
1667-
require.Equal(t, 1, len(presets))
1668-
require.Equal(t, "test", presets[0].Name)
1674+
require.Equal(t, 2, len(presets))
1675+
require.Equal(t, "autodetected", presets[0].Name)
1676+
require.Equal(t, "manual", presets[1].Name)
1677+
1678+
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
1679+
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
1680+
// Preset ID was detected based on the workspace parameters:
1681+
require.Equal(t, presets[0].ID, *workspace.LatestBuild.TemplateVersionPresetID)
16691682

16701683
build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
16711684
TemplateVersionID: version.ID,
16721685
Transition: codersdk.WorkspaceTransitionStart,
1673-
TemplateVersionPresetID: presets[0].ID,
1686+
TemplateVersionPresetID: presets[1].ID,
16741687
})
16751688
require.NoError(t, err)
16761689
require.NotNil(t, build.TemplateVersionPresetID)
16771690

16781691
workspace, err = client.Workspace(ctx, workspace.ID)
16791692
require.NoError(t, err)
1693+
require.Equal(t, presets[1].ID, *workspace.LatestBuild.TemplateVersionPresetID)
16801694
require.Equal(t, build.TemplateVersionPresetID, workspace.LatestBuild.TemplateVersionPresetID)
16811695
})
16821696

coderd/wsbuilder/wsbuilder_test.go

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ func TestBuilder_NoOptions(t *testing.T) {
8282
}),
8383

8484
withInTx,
85+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
8586
expectBuild(func(bld database.InsertWorkspaceBuildParams) {
8687
asrt.Equal(inactiveVersionID, bld.TemplateVersionID)
8788
asrt.Equal(workspaceID, bld.WorkspaceID)
@@ -132,6 +133,7 @@ func TestBuilder_Initiator(t *testing.T) {
132133
asrt.Equal(otherUserID, job.InitiatorID)
133134
}),
134135
withInTx,
136+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
135137
expectBuild(func(bld database.InsertWorkspaceBuildParams) {
136138
asrt.Equal(otherUserID, bld.InitiatorID)
137139
}),
@@ -180,6 +182,7 @@ func TestBuilder_Baggage(t *testing.T) {
180182
asrt.Contains(string(job.TraceMetadata.RawMessage), "ip=127.0.0.1")
181183
}),
182184
withInTx,
185+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
183186
expectBuild(func(bld database.InsertWorkspaceBuildParams) {
184187
}),
185188
expectBuildParameters(func(params database.InsertWorkspaceBuildParametersParams) {
@@ -219,6 +222,7 @@ func TestBuilder_Reason(t *testing.T) {
219222
expectProvisionerJob(func(_ database.InsertProvisionerJobParams) {
220223
}),
221224
withInTx,
225+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
222226
expectBuild(func(bld database.InsertWorkspaceBuildParams) {
223227
asrt.Equal(database.BuildReasonAutostart, bld.Reason)
224228
}),
@@ -261,6 +265,7 @@ func TestBuilder_ActiveVersion(t *testing.T) {
261265
}),
262266

263267
withInTx,
268+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
264269
expectBuild(func(bld database.InsertWorkspaceBuildParams) {
265270
asrt.Equal(activeVersionID, bld.TemplateVersionID)
266271
// no previous build...
@@ -386,10 +391,8 @@ func TestWorkspaceBuildWithTags(t *testing.T) {
386391
expectBuildParameters(func(_ database.InsertWorkspaceBuildParametersParams) {
387392
}),
388393
withBuild,
394+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
389395
)
390-
mDB.EXPECT().FindMatchingPresetID(gomock.Any(), gomock.Any()).
391-
Times(1).
392-
Return(uuid.Nil, sql.ErrNoRows)
393396
fc := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{})
394397

395398
ws := database.Workspace{ID: workspaceID, TemplateID: templateID, OwnerID: userID}
@@ -473,10 +476,8 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
473476
}
474477
}),
475478
withBuild,
479+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
476480
)
477-
mDB.EXPECT().FindMatchingPresetID(gomock.Any(), gomock.Any()).
478-
Times(1).
479-
Return(uuid.Nil, sql.ErrNoRows)
480481
fc := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{})
481482

482483
ws := database.Workspace{ID: workspaceID, TemplateID: templateID, OwnerID: userID}
@@ -525,10 +526,8 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
525526
}
526527
}),
527528
withBuild,
529+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
528530
)
529-
mDB.EXPECT().FindMatchingPresetID(gomock.Any(), gomock.Any()).
530-
Times(1).
531-
Return(uuid.Nil, sql.ErrNoRows)
532531
fc := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{})
533532

534533
ws := database.Workspace{ID: workspaceID, TemplateID: templateID, OwnerID: userID}
@@ -670,10 +669,8 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
670669
}
671670
}),
672671
withBuild,
672+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
673673
)
674-
mDB.EXPECT().FindMatchingPresetID(gomock.Any(), gomock.Any()).
675-
Times(1).
676-
Return(uuid.Nil, sql.ErrNoRows)
677674
fc := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{})
678675

679676
ws := database.Workspace{ID: workspaceID, TemplateID: templateID, OwnerID: userID}
@@ -725,6 +722,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
725722
withProvisionerDaemons([]database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow{}),
726723

727724
// Outputs
725+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
728726
expectProvisionerJob(func(job database.InsertProvisionerJobParams) {}),
729727
withInTx,
730728
expectBuild(func(bld database.InsertWorkspaceBuildParams) {}),
@@ -738,9 +736,6 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
738736
}),
739737
withBuild,
740738
)
741-
mDB.EXPECT().FindMatchingPresetID(gomock.Any(), gomock.Any()).
742-
Times(1).
743-
Return(uuid.Nil, sql.ErrNoRows)
744739
fc := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{})
745740

746741
ws := database.Workspace{ID: workspaceID, TemplateID: templateID, OwnerID: userID}
@@ -790,6 +785,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
790785
withProvisionerDaemons([]database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow{}),
791786

792787
// Outputs
788+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
793789
expectProvisionerJob(func(job database.InsertProvisionerJobParams) {}),
794790
withInTx,
795791
expectBuild(func(bld database.InsertWorkspaceBuildParams) {}),
@@ -921,6 +917,7 @@ func TestWorkspaceBuildDeleteOrphan(t *testing.T) {
921917
}),
922918

923919
withInTx,
920+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
924921
expectBuild(func(bld database.InsertWorkspaceBuildParams) {
925922
asrt.Equal(inactiveVersionID, bld.TemplateVersionID)
926923
asrt.Equal(workspaceID, bld.WorkspaceID)
@@ -983,6 +980,7 @@ func TestWorkspaceBuildDeleteOrphan(t *testing.T) {
983980
}),
984981

985982
withInTx,
983+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
986984
expectBuild(func(bld database.InsertWorkspaceBuildParams) {
987985
asrt.Equal(inactiveVersionID, bld.TemplateVersionID)
988986
asrt.Equal(workspaceID, bld.WorkspaceID)
@@ -1056,6 +1054,7 @@ func TestWorkspaceBuildUsageChecker(t *testing.T) {
10561054
// Outputs
10571055
expectProvisionerJob(func(job database.InsertProvisionerJobParams) {}),
10581056
withInTx,
1057+
expectFindMatchingPresetID(uuid.Nil, sql.ErrNoRows),
10591058
expectBuild(func(bld database.InsertWorkspaceBuildParams) {}),
10601059
withBuild,
10611060
expectBuildParameters(func(params database.InsertWorkspaceBuildParametersParams) {}),
@@ -1500,6 +1499,14 @@ func withProvisionerDaemons(provisionerDaemons []database.GetEligibleProvisioner
15001499
}
15011500
}
15021501

1502+
func expectFindMatchingPresetID(id uuid.UUID, err error) func(mTx *dbmock.MockStore) {
1503+
return func(mTx *dbmock.MockStore) {
1504+
mTx.EXPECT().FindMatchingPresetID(gomock.Any(), gomock.Any()).
1505+
Times(1).
1506+
Return(id, err)
1507+
}
1508+
}
1509+
15031510
type fakeUsageChecker struct {
15041511
checkBuildUsageFunc func(ctx context.Context, store database.Store, templateVersion *database.TemplateVersion) (wsbuilder.UsageCheckResponse, error)
15051512
}

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