(t *testing.T)
| 410 | } |
| 411 | |
| 412 | func TestUserSkillSoftDeleteCleanup(t *testing.T) { |
| 413 | t.Parallel() |
| 414 | |
| 415 | adminClient, _, api := coderdtest.NewWithAPI(t, nil) |
| 416 | firstUser := coderdtest.CreateFirstUser(t, adminClient) |
| 417 | ownerClient, ownerUser := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) |
| 418 | owner := codersdk.NewExperimentalClient(ownerClient) |
| 419 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 420 | |
| 421 | _, err := owner.CreateUserSkill(ctx, codersdk.Me, codersdk.CreateUserSkillRequest{ |
| 422 | Content: userSkillMarkdown("soft-delete-skill", "Soft delete", "Body."), |
| 423 | }) |
| 424 | require.NoError(t, err) |
| 425 | |
| 426 | require.NoError(t, adminClient.DeleteUser(ctx, ownerUser.ID)) |
| 427 | readAuthzCtx := dbauthz.AsSystemRestricted(ctx) |
| 428 | _, err = api.Database.GetUserSkillByUserIDAndName( |
| 429 | readAuthzCtx, |
| 430 | database.GetUserSkillByUserIDAndNameParams{ |
| 431 | UserID: ownerUser.ID, |
| 432 | Name: "soft-delete-skill", |
| 433 | }, |
| 434 | ) |
| 435 | require.ErrorIs(t, err, sql.ErrNoRows) |
| 436 | |
| 437 | createAuthzCtx := dbauthz.As(ctx, rbac.Subject{ |
| 438 | Type: rbac.SubjectTypeUser, |
| 439 | ID: ownerUser.ID.String(), |
| 440 | Roles: rbac.RoleIdentifiers{rbac.RoleMember()}, |
| 441 | Scope: rbac.ScopeAll, |
| 442 | }.WithCachedASTValue()) |
| 443 | _, err = api.Database.InsertUserSkill( |
| 444 | createAuthzCtx, |
| 445 | database.InsertUserSkillParams{ |
| 446 | ID: uuid.New(), |
| 447 | UserID: ownerUser.ID, |
| 448 | Name: "after-soft-delete", |
| 449 | Description: "Soft delete", |
| 450 | Content: userSkillMarkdown("after-soft-delete", "Soft delete", "Body."), |
| 451 | }, |
| 452 | ) |
| 453 | require.True(t, database.IsCheckViolation(err, database.CheckConstraint("user_skill_user_deleted"))) |
| 454 | require.ErrorContains(t, err, "Cannot create user_skill for deleted user") |
| 455 | } |
| 456 | |
| 457 | func TestUserSkillDatabaseConstraints(t *testing.T) { |
| 458 | t.Parallel() |
nothing calls this directly
no test coverage detected