(t *testing.T, db database.DB)
| 211 | } |
| 212 | |
| 213 | func testProjects(t *testing.T, db database.DB) { |
| 214 | ctx := context.Background() |
| 215 | |
| 216 | org, err := db.InsertOrganization(ctx, &database.InsertOrganizationOptions{Name: "foo"}) |
| 217 | require.NoError(t, err) |
| 218 | require.Equal(t, "foo", org.Name) |
| 219 | |
| 220 | proj, err := db.FindProjectByName(ctx, org.Name, "bar") |
| 221 | require.ErrorIs(t, err, database.ErrNotFound) |
| 222 | require.Nil(t, proj) |
| 223 | |
| 224 | proj, err = db.InsertProject(ctx, &database.InsertProjectOptions{ |
| 225 | OrganizationID: org.ID, |
| 226 | Name: "bar", |
| 227 | Description: "hello world", |
| 228 | }) |
| 229 | require.NoError(t, err) |
| 230 | require.Equal(t, org.ID, proj.OrganizationID) |
| 231 | require.Equal(t, "bar", proj.Name) |
| 232 | require.Equal(t, "hello world", proj.Description) |
| 233 | require.Less(t, time.Since(proj.CreatedOn), 10*time.Second) |
| 234 | require.Less(t, time.Since(proj.UpdatedOn), 10*time.Second) |
| 235 | |
| 236 | proj, err = db.FindProjectByName(ctx, org.Name, proj.Name) |
| 237 | require.NoError(t, err) |
| 238 | require.Equal(t, org.ID, proj.OrganizationID) |
| 239 | require.Equal(t, "bar", proj.Name) |
| 240 | require.Equal(t, "hello world", proj.Description) |
| 241 | |
| 242 | proj.Description = "" |
| 243 | proj, err = db.UpdateProject(ctx, proj.ID, &database.UpdateProjectOptions{ |
| 244 | Name: proj.Name, |
| 245 | Description: proj.Description, |
| 246 | }) |
| 247 | require.NoError(t, err) |
| 248 | require.Equal(t, org.ID, proj.OrganizationID) |
| 249 | require.Equal(t, "bar", proj.Name) |
| 250 | require.Equal(t, "", proj.Description) |
| 251 | |
| 252 | err = db.DeleteOrganization(ctx, org.Name) |
| 253 | require.ErrorContains(t, err, "constraint") |
| 254 | |
| 255 | err = db.DeleteProject(ctx, proj.ID) |
| 256 | require.NoError(t, err) |
| 257 | |
| 258 | proj, err = db.FindProjectByName(ctx, org.Name, "bar") |
| 259 | require.ErrorIs(t, err, database.ErrNotFound) |
| 260 | require.Nil(t, proj) |
| 261 | |
| 262 | err = db.DeleteOrganization(ctx, org.Name) |
| 263 | require.NoError(t, err) |
| 264 | |
| 265 | org, err = db.FindOrganizationByName(ctx, "foo") |
| 266 | require.ErrorIs(t, err, database.ErrNotFound) |
| 267 | require.Nil(t, org) |
| 268 | } |
| 269 | |
| 270 | func testProjectsWithAnnotations(t *testing.T, db database.DB) { |
no test coverage detected