MCPcopy Index your code
hub / github.com/coder/coder / TestUserSkillSoftDeleteCleanup

Function TestUserSkillSoftDeleteCleanup

coderd/userskills_test.go:412–455  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

410}
411
412func 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
457func TestUserSkillDatabaseConstraints(t *testing.T) {
458 t.Parallel()

Callers

nothing calls this directly

Calls 15

CreateUserSkillMethod · 0.95
NewWithAPIFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
NewExperimentalClientFunction · 0.92
ContextFunction · 0.92
AsSystemRestrictedFunction · 0.92
AsFunction · 0.92
RoleMemberFunction · 0.92
IsCheckViolationFunction · 0.92
CheckConstraintTypeAlias · 0.92
DeleteUserMethod · 0.80

Tested by

no test coverage detected