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

Function TestUserSkillAudit

coderd/userskills_test.go:550–661  ·  view source on GitHub ↗

nolint:paralleltest,tparallel // Subtests share one auditor and run sequentially.

(t *testing.T)

Source from the content-addressed store, hash-verified

548
549//nolint:paralleltest,tparallel // Subtests share one auditor and run sequentially.
550func TestUserSkillAudit(t *testing.T) {
551 t.Parallel()
552
553 auditor := audit.NewMock()
554 adminClient := coderdtest.New(t, &coderdtest.Options{Auditor: auditor})
555 firstUser := coderdtest.CreateFirstUser(t, adminClient)
556 memberClient, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID)
557 member := codersdk.NewExperimentalClient(memberClient)
558 ctx := testutil.Context(t, testutil.WaitMedium)
559 auditor.ResetLogs()
560
561 genName := func(t *testing.T) string {
562 return strings.ToLower(strings.ReplaceAll(t.Name(), "/", "-"))
563 }
564
565 t.Run("CreateEmitsLog", func(t *testing.T) {
566 auditor.ResetLogs()
567 name := genName(t)
568
569 skill, err := member.CreateUserSkill(ctx, codersdk.Me, codersdk.CreateUserSkillRequest{
570 Content: userSkillMarkdown(name, "Audit", "Body."),
571 })
572 require.NoError(t, err)
573
574 logs := auditor.AuditLogs()
575 require.Len(t, logs, 1)
576 assert.Equal(t, database.AuditActionCreate, logs[0].Action)
577 assert.Equal(t, skill.ID, logs[0].ResourceID)
578 assert.Equal(t, skill.Name, logs[0].ResourceTarget)
579 assert.EqualValues(t, http.StatusCreated, logs[0].StatusCode)
580 })
581
582 t.Run("UpdateEmitsLog", func(t *testing.T) {
583 auditor.ResetLogs()
584 name := genName(t)
585
586 skill, err := member.CreateUserSkill(ctx, codersdk.Me, codersdk.CreateUserSkillRequest{
587 Content: userSkillMarkdown(name, "Initial", "Body."),
588 })
589 require.NoError(t, err)
590 _, err = member.UpdateUserSkill(ctx, codersdk.Me, name, codersdk.UpdateUserSkillRequest{
591 Content: userSkillMarkdown(name, "Updated", "Updated body."),
592 })
593 require.NoError(t, err)
594
595 logs := auditor.AuditLogs()
596 require.Len(t, logs, 2)
597 assert.Equal(t, database.AuditActionCreate, logs[0].Action)
598 assert.Equal(t, database.AuditActionWrite, logs[1].Action)
599 assert.Equal(t, skill.ID, logs[1].ResourceID)
600 assert.Equal(t, skill.Name, logs[1].ResourceTarget)
601 assert.EqualValues(t, http.StatusOK, logs[1].StatusCode)
602 })
603
604 t.Run("DeleteEmitsLog", func(t *testing.T) {
605 auditor.ResetLogs()
606 name := genName(t)
607

Callers

nothing calls this directly

Calls 15

CreateUserSkillMethod · 0.95
UpdateUserSkillMethod · 0.95
DeleteUserSkillMethod · 0.95
UserSkillsMethod · 0.95
UserSkillByNameMethod · 0.95
NewMockFunction · 0.92
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
NewExperimentalClientFunction · 0.92
ContextFunction · 0.92
requireSDKErrorStatusFunction · 0.85

Tested by

no test coverage detected