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

Function TestResolveAutostart

coderd/workspaces_test.go:913–981  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

911}
912
913func TestResolveAutostart(t *testing.T) {
914 t.Parallel()
915
916 ownerClient, db := coderdtest.NewWithDatabase(t, nil)
917 owner := coderdtest.CreateFirstUser(t, ownerClient)
918
919 param := database.TemplateVersionParameter{
920 Name: "param",
921 DefaultValue: "",
922 Required: true,
923 }
924
925 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
926 defer cancel()
927
928 client, member := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID)
929 resp := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
930 OwnerID: member.ID,
931 OrganizationID: owner.OrganizationID,
932 AutomaticUpdates: database.AutomaticUpdatesAlways,
933 }).Seed(database.WorkspaceBuild{
934 InitiatorID: member.ID,
935 }).Do()
936
937 workspace := resp.Workspace
938 version1 := resp.TemplateVersion
939
940 version2 := dbfake.TemplateVersion(t, db).
941 Seed(database.TemplateVersion{
942 CreatedBy: owner.UserID,
943 OrganizationID: owner.OrganizationID,
944 TemplateID: version1.TemplateID,
945 }).
946 Params(param).Do()
947
948 // Autostart shouldn't be possible if parameters do not match.
949 resolveResp, err := client.ResolveAutostart(ctx, workspace.ID.String())
950 require.NoError(t, err)
951 require.True(t, resolveResp.ParameterMismatch)
952
953 _ = dbfake.WorkspaceBuild(t, db, workspace).
954 Seed(database.WorkspaceBuild{
955 BuildNumber: 2,
956 TemplateVersionID: version2.TemplateVersion.ID,
957 }).
958 Params(database.WorkspaceBuildParameter{
959 Name: "param",
960 Value: "hello",
961 }).Do()
962
963 // We should be able to autostart since parameters are updated.
964 resolveResp, err = client.ResolveAutostart(ctx, workspace.ID.String())
965 require.NoError(t, err)
966 require.False(t, resolveResp.ParameterMismatch)
967
968 // Create another version that has the same parameters as version2.
969 // We should be able to update without issue.
970 _ = dbfake.TemplateVersion(t, db).Seed(database.TemplateVersion{

Callers

nothing calls this directly

Calls 10

NewWithDatabaseFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
WorkspaceBuildFunction · 0.92
TemplateVersionFunction · 0.92
ResolveAutostartMethod · 0.80
DoMethod · 0.65
SeedMethod · 0.45
ParamsMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected