generated from VLADIMIR/template
updates
This commit is contained in:
@@ -6,24 +6,29 @@ import (
|
||||
"testing"
|
||||
|
||||
"evening_detective_server/internal/services/participation_service"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
func TestParticipationError(t *testing.T) {
|
||||
func TestParticipationErrorStatus(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
name string
|
||||
err error
|
||||
code codes.Code
|
||||
want string
|
||||
}{
|
||||
{"invalid link", participation_service.ErrParticipationLink, "Ссылка недействительна"},
|
||||
{"closed", participation_service.ErrParticipationClosed, "Приём ответов закрыт"},
|
||||
{"final", participation_service.ErrParticipationFinal, "Решение уже принято и не может быть изменено"},
|
||||
{"internal", errors.New("private database detail"), "Не удалось обработать ответ. Попробуйте позже."},
|
||||
{"invalid link", participation_service.ErrParticipationLink, codes.NotFound, "Ссылка недействительна"},
|
||||
{"invalid answer", participation_service.ErrInvalidAnswer, codes.InvalidArgument, "Выберите подтверждение или отмену участия"},
|
||||
{"closed", participation_service.ErrParticipationClosed, codes.FailedPrecondition, "Приём ответов закрыт"},
|
||||
{"final", participation_service.ErrParticipationFinal, codes.FailedPrecondition, "Решение уже принято и не может быть изменено"},
|
||||
{"internal", errors.New("private database detail"), codes.Internal, "participation failed"},
|
||||
} {
|
||||
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)
|
||||
got := participationErrorStatus(tc.err, "participation failed")
|
||||
if status.Code(got) != tc.code || status.Convert(got).Message() != tc.want {
|
||||
t.Fatalf("status=%v, want %s %q", got, tc.code, tc.want)
|
||||
}
|
||||
if strings.Contains(participationError(tc.err), "private database detail") {
|
||||
if tc.code == codes.Internal && strings.Contains(status.Convert(got).Message(), "private database detail") {
|
||||
t.Fatal("private error exposed")
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user