package app import ( "errors" "strings" "testing" "evening_detective_server/internal/services/participation_service" ) func TestParticipationError(t *testing.T) { for _, tc := range []struct { name string err error want string }{ {"invalid link", participation_service.ErrParticipationLink, "Ссылка недействительна"}, {"closed", participation_service.ErrParticipationClosed, "Приём ответов закрыт"}, {"final", participation_service.ErrParticipationFinal, "Решение уже принято и не может быть изменено"}, {"internal", errors.New("private database detail"), "Не удалось обработать ответ. Попробуйте позже."}, } { t.Run(tc.name, func(t *testing.T) { if got := participationError(tc.err); got != tc.want { t.Fatalf("message=%q, want %q", got, tc.want) } if strings.Contains(participationError(tc.err), "private database detail") { t.Fatal("private error exposed") } }) } }