(t *testing.T, db database.DB)
| 366 | } |
| 367 | |
| 368 | func testProjectsForUserWithPagination(t *testing.T, db database.DB) { |
| 369 | ctx := context.Background() |
| 370 | |
| 371 | // add user |
| 372 | user, err := db.InsertUser(ctx, &database.InsertUserOptions{Email: "test@rilldata.com"}) |
| 373 | require.NoError(t, err) |
| 374 | require.Equal(t, "test@rilldata.com", user.Email) |
| 375 | |
| 376 | // fetch role |
| 377 | role, err := db.FindProjectRole(ctx, database.ProjectRoleNameEditor) |
| 378 | require.NoError(t, err) |
| 379 | |
| 380 | // add org |
| 381 | org, err := db.InsertOrganization(ctx, &database.InsertOrganizationOptions{Name: "test"}) |
| 382 | require.NoError(t, err) |
| 383 | require.Equal(t, "test", org.Name) |
| 384 | |
| 385 | // add projects |
| 386 | // public project |
| 387 | proj, err := db.InsertProject(ctx, &database.InsertProjectOptions{OrganizationID: org.ID, Name: "alpha", Public: true}) |
| 388 | require.NoError(t, err) |
| 389 | |
| 390 | // user added as collaborator |
| 391 | proj1, err := db.InsertProject(ctx, &database.InsertProjectOptions{OrganizationID: org.ID, Name: "beta"}) |
| 392 | require.NoError(t, err) |
| 393 | require.Equal(t, "beta", proj1.Name) |
| 394 | require.NoError(t, db.InsertProjectMemberUser(ctx, proj1.ID, user.ID, role.ID, false, nil)) |
| 395 | |
| 396 | // public project and user added as collaborator |
| 397 | proj2, err := db.InsertProject(ctx, &database.InsertProjectOptions{OrganizationID: org.ID, Name: "gamma", Public: true}) |
| 398 | require.NoError(t, err) |
| 399 | require.Equal(t, "gamma", proj2.Name) |
| 400 | require.NoError(t, db.InsertProjectMemberUser(ctx, proj2.ID, user.ID, role.ID, false, nil)) |
| 401 | |
| 402 | // internal project |
| 403 | proj3, err := db.InsertProject(ctx, &database.InsertProjectOptions{OrganizationID: org.ID, Name: "internal"}) |
| 404 | require.NoError(t, err) |
| 405 | require.Equal(t, "internal", proj3.Name) |
| 406 | |
| 407 | // fetch projects without name filter |
| 408 | projs, err := db.FindProjectsForOrgAndUser(ctx, org.ID, user.ID, true, true, "", 2) |
| 409 | require.NoError(t, err) |
| 410 | require.Equal(t, len(projs), 2) |
| 411 | require.Equal(t, "alpha", projs[0].Name) |
| 412 | require.Equal(t, "beta", projs[1].Name) |
| 413 | |
| 414 | // fetch project with name filter |
| 415 | projs, err = db.FindProjectsForOrgAndUser(ctx, org.ID, user.ID, true, true, projs[1].Name, 2) |
| 416 | require.NoError(t, err) |
| 417 | require.Equal(t, len(projs), 1) |
| 418 | require.Equal(t, "gamma", projs[0].Name) |
| 419 | |
| 420 | //cleanup |
| 421 | require.NoError(t, db.DeleteProject(ctx, proj.ID)) |
| 422 | require.NoError(t, db.DeleteProject(ctx, proj1.ID)) |
| 423 | require.NoError(t, db.DeleteProject(ctx, proj2.ID)) |
| 424 | require.NoError(t, db.DeleteProject(ctx, proj3.ID)) |
| 425 | require.NoError(t, db.DeleteOrganization(ctx, "test")) |
no test coverage detected