(t *testing.T)
| 836 | } |
| 837 | |
| 838 | func 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 |
nothing calls this directly
no test coverage detected