(t *testing.T)
| 3352 | } |
| 3353 | |
| 3354 | func TestFetchPersonalSkillMetadata(t *testing.T) { |
| 3355 | t.Parallel() |
| 3356 | |
| 3357 | t.Run("Success", func(t *testing.T) { |
| 3358 | t.Parallel() |
| 3359 | |
| 3360 | ctrl := gomock.NewController(t) |
| 3361 | db := dbmock.NewMockStore(ctrl) |
| 3362 | logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug) |
| 3363 | server := &Server{db: db} |
| 3364 | userID := uuid.New() |
| 3365 | |
| 3366 | db.EXPECT().ListUserSkillMetadataByUserID(gomock.Any(), userID).DoAndReturn( |
| 3367 | func(ctx context.Context, gotUserID uuid.UUID) ([]database.ListUserSkillMetadataByUserIDRow, error) { |
| 3368 | requireUserSkillContextActor(ctx, t, userID) |
| 3369 | require.Equal(t, userID, gotUserID) |
| 3370 | return []database.ListUserSkillMetadataByUserIDRow{{ |
| 3371 | UserID: userID, |
| 3372 | Name: "personal-review", |
| 3373 | Description: "Personal review process", |
| 3374 | }}, nil |
| 3375 | }, |
| 3376 | ) |
| 3377 | |
| 3378 | got := server.fetchPersonalSkillMetadata(context.Background(), userID, logger) |
| 3379 | require.Equal(t, []skillspkg.Skill{{ |
| 3380 | Name: "personal-review", |
| 3381 | Description: "Personal review process", |
| 3382 | Source: skillspkg.SourcePersonal, |
| 3383 | }}, got) |
| 3384 | }) |
| 3385 | |
| 3386 | t.Run("ListFailure", func(t *testing.T) { |
| 3387 | t.Parallel() |
| 3388 | |
| 3389 | ctrl := gomock.NewController(t) |
| 3390 | db := dbmock.NewMockStore(ctrl) |
| 3391 | sink := testutil.NewFakeSink(t) |
| 3392 | logger := sink.Logger().Leveled(slog.LevelDebug) |
| 3393 | server := &Server{db: db} |
| 3394 | userID := uuid.New() |
| 3395 | |
| 3396 | db.EXPECT().ListUserSkillMetadataByUserID(gomock.Any(), userID).Return(nil, xerrors.New("boom")) |
| 3397 | |
| 3398 | got := server.fetchPersonalSkillMetadata(context.Background(), userID, logger) |
| 3399 | require.Empty(t, got) |
| 3400 | warns := sink.Entries(func(e slog.SinkEntry) bool { |
| 3401 | return e.Level == slog.LevelWarn && strings.Contains(e.Message, "personal skill metadata") |
| 3402 | }) |
| 3403 | require.NotEmpty(t, warns) |
| 3404 | }) |
| 3405 | } |
| 3406 | |
| 3407 | func TestLoadPersonalSkillBody(t *testing.T) { |
| 3408 | t.Parallel() |
nothing calls this directly
no test coverage detected