(t *testing.T)
| 911 | } |
| 912 | |
| 913 | func 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{ |
nothing calls this directly
no test coverage detected