(t *testing.T)
| 166 | } |
| 167 | |
| 168 | func TestDataSourceValidateOnly(t *testing.T) { |
| 169 | a := require.New(t) |
| 170 | ctx := context.Background() |
| 171 | ctl := &controller{} |
| 172 | ctx, err := ctl.StartServerWithExternalPg(ctx) |
| 173 | a.NoError(err) |
| 174 | defer ctl.Close(ctx) |
| 175 | |
| 176 | instanceRootDir := t.TempDir() |
| 177 | instanceName := "testInstanceValidateOnly" |
| 178 | instanceDir, err := ctl.provisionSQLiteInstance(instanceRootDir, instanceName) |
| 179 | a.NoError(err) |
| 180 | |
| 181 | instanceResp, err := ctl.instanceServiceClient.CreateInstance(ctx, connect.NewRequest(&v1pb.CreateInstanceRequest{ |
| 182 | InstanceId: generateRandomString("instance"), |
| 183 | Instance: &v1pb.Instance{ |
| 184 | Title: "test", |
| 185 | Engine: v1pb.Engine_SQLITE, |
| 186 | Environment: new("environments/prod"), |
| 187 | Activation: true, |
| 188 | DataSources: []*v1pb.DataSource{{Type: v1pb.DataSourceType_ADMIN, Id: "admin-ds", Host: instanceDir}}, |
| 189 | }, |
| 190 | })) |
| 191 | a.NoError(err) |
| 192 | instance := instanceResp.Msg |
| 193 | |
| 194 | err = ctl.setLicense(ctx) |
| 195 | a.NoError(err) |
| 196 | |
| 197 | addResp, err := ctl.instanceServiceClient.AddDataSource(ctx, connect.NewRequest(&v1pb.AddDataSourceRequest{ |
| 198 | Name: instance.Name, |
| 199 | DataSource: &v1pb.DataSource{ |
| 200 | Id: "readonly-validate-only", |
| 201 | Type: v1pb.DataSourceType_READ_ONLY, |
| 202 | Host: instanceDir, |
| 203 | }, |
| 204 | ValidateOnly: true, |
| 205 | })) |
| 206 | a.NoError(err) |
| 207 | a.Len(addResp.Msg.DataSources, 2) |
| 208 | a.NotNil(findDataSource(addResp.Msg.DataSources, "readonly-validate-only")) |
| 209 | |
| 210 | instanceResp, err = ctl.instanceServiceClient.GetInstance(ctx, connect.NewRequest(&v1pb.GetInstanceRequest{Name: instance.Name})) |
| 211 | a.NoError(err) |
| 212 | a.Len(instanceResp.Msg.DataSources, 1) |
| 213 | a.Nil(findDataSource(instanceResp.Msg.DataSources, "readonly-validate-only")) |
| 214 | |
| 215 | updateResp, err := ctl.instanceServiceClient.UpdateDataSource(ctx, connect.NewRequest(&v1pb.UpdateDataSourceRequest{ |
| 216 | Name: instance.Name, |
| 217 | DataSource: &v1pb.DataSource{ |
| 218 | Id: "readonly-allow-missing", |
| 219 | Type: v1pb.DataSourceType_READ_ONLY, |
| 220 | Host: instanceDir, |
| 221 | }, |
| 222 | UpdateMask: &fieldmaskpb.FieldMask{Paths: []string{"host"}}, |
| 223 | ValidateOnly: true, |
| 224 | AllowMissing: true, |
| 225 | })) |
nothing calls this directly
no test coverage detected