MCPcopy Index your code
hub / github.com/coder/coder / TestWorkspaceBuildWithPreset

Function TestWorkspaceBuildWithPreset

coderd/wsbuilder/wsbuilder_test.go:838–903  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

836}
837
838func TestWorkspaceBuildWithPreset(t *testing.T) {
839 t.Parallel()
840
841 req := require.New(t)
842 asrt := assert.New(t)
843
844 ctx, cancel := context.WithCancel(context.Background())
845 defer cancel()
846
847 var buildID uuid.UUID
848
849 mDB := expectDB(t,
850 // Inputs
851 withTemplate,
852 withActiveVersion(nil),
853 // building workspaces using presets with different combinations of parameters
854 // is tested at the API layer, in TestWorkspace. Here, it is sufficient to
855 // test that the preset is used when provided.
856 withTemplateVersionPresetParameters(presetID, nil),
857 withLastBuildNotFound,
858 withTemplateVersionVariables(activeVersionID, nil),
859 withParameterSchemas(activeJobID, nil),
860 withWorkspaceTags(activeVersionID, nil),
861 withProvisionerDaemons([]database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow{}),
862
863 // Outputs
864 expectProvisionerJob(func(job database.InsertProvisionerJobParams) {
865 asrt.Equal(userID, job.InitiatorID)
866 asrt.Equal(activeFileID, job.FileID)
867 input := provisionerdserver.WorkspaceProvisionJob{}
868 err := json.Unmarshal(job.Input, &input)
869 req.NoError(err)
870 // store build ID for later
871 buildID = input.WorkspaceBuildID
872 }),
873
874 withInTx,
875 expectBuild(func(bld database.InsertWorkspaceBuildParams) {
876 asrt.Equal(activeVersionID, bld.TemplateVersionID)
877 asrt.Equal(workspaceID, bld.WorkspaceID)
878 asrt.Equal(int32(1), bld.BuildNumber)
879 asrt.Equal(userID, bld.InitiatorID)
880 asrt.Equal(database.WorkspaceTransitionStart, bld.Transition)
881 asrt.Equal(database.BuildReasonInitiator, bld.Reason)
882 asrt.Equal(buildID, bld.ID)
883 asrt.True(bld.TemplateVersionPresetID.Valid)
884 asrt.Equal(presetID, bld.TemplateVersionPresetID.UUID)
885 }),
886 withBuild,
887 withNoTask,
888 expectBuildParameters(func(params database.InsertWorkspaceBuildParametersParams) {
889 asrt.Equal(buildID, params.WorkspaceBuildID)
890 asrt.Empty(params.Name)
891 asrt.Empty(params.Value)
892 }),
893 )
894 fc := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{})
895

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
NewFunction · 0.92
expectDBFunction · 0.85
withActiveVersionFunction · 0.85
withParameterSchemasFunction · 0.85
withWorkspaceTagsFunction · 0.85
withProvisionerDaemonsFunction · 0.85
expectProvisionerJobFunction · 0.85
expectBuildFunction · 0.85
expectBuildParametersFunction · 0.85

Tested by

no test coverage detected