This commit is contained in:
Pavel 2024-02-01 22:46:20 +03:00
parent fbf19a2630
commit 370a2c7e2c
5 changed files with 82 additions and 4 deletions

@ -606,6 +606,8 @@ func (api *API2) CalculateLTV(ctx echo.Context) error {
return api.error(ctx, http.StatusBadRequest, "failed to bind request") return api.error(ctx, http.StatusBadRequest, "failed to bind request")
} }
fmt.Println(req)
if req.From > req.To && req.To != 0 { if req.From > req.To && req.To != 0 {
api.logger.Error("From timestamp must be less than To timestamp unless To is 0") api.logger.Error("From timestamp must be less than To timestamp unless To is 0")
return api.error(ctx, http.StatusBadRequest, "From timestamp must be less than To timestamp unless To is 0") return api.error(ctx, http.StatusBadRequest, "From timestamp must be less than To timestamp unless To is 0")
@ -623,6 +625,8 @@ func (api *API2) CalculateLTV(ctx echo.Context) error {
LTV: ltv, LTV: ltv,
} }
fmt.Println(response)
return ctx.JSON(http.StatusOK, response) return ctx.JSON(http.StatusOK, response)
} }
@ -651,6 +655,7 @@ func (api *API2) GetRecentTariffs(ctx echo.Context) error {
} }
func (api *API2) SendReport(ctx echo.Context) error { func (api *API2) SendReport(ctx echo.Context) error {
fmt.Println("SendReport")
historyID := ctx.Param("id") historyID := ctx.Param("id")
if historyID == "" { if historyID == "" {
api.logger.Error("history id is missing in <GetHistoryById> of <HistoryService>") api.logger.Error("history id is missing in <GetHistoryById> of <HistoryService>")

@ -1,4 +1,4 @@
package integration package e2e_test
import ( import (
"context" "context"
@ -36,8 +36,8 @@ func TestCalculateLTV(t *testing.T) {
to := toTime.Unix() to := toTime.Unix()
fmt.Println(from, to) fmt.Println(from, to)
response, err := client.Post[struct{}, models.ResponseErrorHTTP](ctx, &client.RequestSettings{ response, err := client.Post[interface{}, models.ResponseErrorHTTP](ctx, &client.RequestSettings{
URL: "http://" + "localhost:8000" + "/history/ltv", URL: "http://localhost:8000/history/ltv",
Body: swagger.CalculateLTVJSONBody{From: from, To: to}, Body: swagger.CalculateLTVJSONBody{From: from, To: to},
Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)}, Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)},
}) })

@ -0,0 +1,35 @@
package e2e_test
import (
"context"
"fmt"
"testing"
"github.com/stretchr/testify/assert"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
"penahub.gitlab.yandexcloud.net/pena-services/customer/pkg/client"
"penahub.gitlab.yandexcloud.net/pena-services/customer/tests/helpers"
)
func TestGetRecentTariffs(t *testing.T) {
jwtUtil := helpers.InitializeJWT()
t.Run("Get Recent Tariffs", func(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
userID := "64e5d9830fcca0596d82c0c7"
token, tokenErr := jwtUtil.Create(userID)
assert.NoError(t, tokenErr)
responseGetRecentTariffs, errGetRecentTariffs := client.Get[[]models.TariffID, models.ResponseErrorHTTP](ctx, &client.RequestSettings{
URL: "http://localhost:8000/recent",
Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)},
})
assert.NoError(t, errGetRecentTariffs)
assert.Nil(t, responseGetRecentTariffs.Error)
fmt.Println(responseGetRecentTariffs.Body)
assert.NotNil(t, responseGetRecentTariffs.Body)
})
}

@ -0,0 +1,38 @@
package e2e_test
import (
"context"
"fmt"
"net/http"
"testing"
"github.com/stretchr/testify/assert"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
"penahub.gitlab.yandexcloud.net/pena-services/customer/pkg/client"
"penahub.gitlab.yandexcloud.net/pena-services/customer/tests/helpers"
)
// todo thinking
func TestSendReport(t *testing.T) {
jwtUtil := helpers.InitializeJWT()
t.Run("Send Report", func(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
historyID := "641b2d73e0e07a7e90b59616"
token, tokenErr := jwtUtil.Create("64e5d9830fcca0596d82c0c1")
assert.NoError(t, tokenErr)
responseSendReport, errSendReport := client.Post[interface{}, models.ResponseErrorHTTP](ctx, &client.RequestSettings{
URL: "http://localhost:8000/sendReport",
Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)},
Body: map[string]interface{}{"id": historyID},
})
assert.NoError(t, errSendReport)
assert.Nil(t, responseSendReport.Error)
assert.Equal(t, http.StatusOK, responseSendReport.StatusCode)
})
}

@ -22,7 +22,7 @@ func TestHistoryReport(t *testing.T) {
} }
response, err := client.Post[struct{}, models.ResponseErrorHTTP](ctx, &client.RequestSettings{ response, err := client.Post[struct{}, models.ResponseErrorHTTP](ctx, &client.RequestSettings{
URL: "http://" + customerServiceBase + "/sendReport", URL: "http://" + "localhost:8000" + "/sendReport",
Body: swagger.SendReportJSONBody{Id: "10002"}, Body: swagger.SendReportJSONBody{Id: "10002"},
Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)}, Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)},
}) })