Open Dev-cmyser opened 5 hours ago
Очень большая, тестировать сложновато будет `func (c CredentialsUseCase) RefreshTokens(ctx context.Context, req proto.RefreshTokensRequest) (*proto.RefreshTokensResponse, error) { tx := c.DB.WithContext(ctx).Begin() defer tx.Rollback()
jwtRefreshToken, err := utils.VerifyRefreshToken(req.RefreshToken) if err != nil { return nil, err } jti, err := utils.GetJTIFromToken(jwtRefreshToken) if err != nil { return nil, err } token := new(entity.Token) if err := c.TokensRepository.GetTokenByJTI(tx, jti, token); err != nil { return nil, utils.InvalidRefreshToken } if token.Revoked { return nil, utils.RevokedRefreshToken } if err := c.TokensRepository.RevokeAllTokensWithBySubjectId(tx, token.SubjectId); err != nil { return nil, utils.InternalServerError } credentials := new(entity.Credentials) if err := c.CredentialsRepository.GetById(tx, credentials, token.SubjectId); err != nil { return nil, utils.InternalServerError } accessToken, refreshToken, accessTokenString, refreshTokenString, err := utils.CreatePairTokens(credentials.ID, credentials.Email) if err := c.TokensRepository.Create(tx, accessToken); err != nil { log.Fatalf("Failed save access token: %v", err) return nil, utils.InternalServerError } if err := c.TokensRepository.Create(tx, refreshToken); err != nil { log.Fatalf("Failed save refresh token: %v", err) return nil, utils.InternalServerError } if err := tx.Commit().Error; err != nil { return nil, utils.InternalServerError } return &proto.RefreshTokensResponse{ Tokens: &proto.Tokens{ Refresh: refreshTokenString, Access: accessTokenString, }, }, nil
} `
да, я уже столкнулся с этой проблемой, когда начал писать тесты, спасибо
Очень большая, тестировать сложновато будет `func (c CredentialsUseCase) RefreshTokens(ctx context.Context, req proto.RefreshTokensRequest) (*proto.RefreshTokensResponse, error) { tx := c.DB.WithContext(ctx).Begin() defer tx.Rollback()
} `