generated from VLADIMIR/template
up
This commit is contained in:
@@ -3,6 +3,7 @@ package app
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"evening_detective_server/internal/repos/game_returns_repo"
|
||||
results "evening_detective_server/internal/services/game_results_package_service"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
@@ -17,6 +18,10 @@ func gameResultsErrorStatus(err error) error {
|
||||
case errors.Is(err, results.ErrLimitExceeded):
|
||||
return status.Error(codes.ResourceExhausted, "Пакет результатов превышает допустимый размер")
|
||||
case errors.Is(err, results.ErrReturnConflict):
|
||||
var conflict *game_returns_repo.ConflictError
|
||||
if errors.As(err, &conflict) {
|
||||
return status.Error(codes.Aborted, conflict.Error())
|
||||
}
|
||||
return status.Error(codes.Aborted, "Конфликт пакета результатов")
|
||||
case errors.Is(err, results.ErrReturnRetry):
|
||||
return status.Error(codes.Unavailable, "Повторите загрузку позже")
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"evening_detective_server/internal/modules/processor_jwt"
|
||||
"evening_detective_server/internal/repos/game_returns_repo"
|
||||
results "evening_detective_server/internal/services/game_results_package_service"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
@@ -61,3 +62,14 @@ func TestResultsDownloadFailureDoesNotSendZIPOrLeakFile(t *testing.T) {
|
||||
t.Fatal("temporary file leaked", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResultsConflictReasonReachesInterface(t *testing.T) {
|
||||
conflict := &game_returns_repo.ConflictError{Reason: "идентификатор команды занят другой игрой."}
|
||||
err := gameResultsErrorStatus(errors.Join(conflict, errors.New("private SQL and file path")))
|
||||
if status.Code(err) != codes.Aborted || status.Convert(err).Message() != conflict.Error() {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !errors.Is(conflict, results.ErrReturnConflict) {
|
||||
t.Fatal("conflict identity lost")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user