generated from VLADIMIR/template
32 lines
1.0 KiB
Go
32 lines
1.0 KiB
Go
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")
|
|
}
|
|
})
|
|
}
|
|
}
|