MCPcopy Index your code
hub / github.com/bytebase/bytebase / TestDataSourceValidateOnly

Function TestDataSourceValidateOnly

backend/tests/data_source_test.go:168–264  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

166}
167
168func 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 }))

Callers

nothing calls this directly

Calls 12

CloseMethod · 0.95
setLicenseMethod · 0.95
generateRandomStringFunction · 0.85
findDataSourceFunction · 0.85
LenMethod · 0.80
CreateInstanceMethod · 0.65
AddDataSourceMethod · 0.65
GetInstanceMethod · 0.65
UpdateDataSourceMethod · 0.65
EqualMethod · 0.65

Tested by

no test coverage detected