generated from PenaSide/GolangTemplate
66 lines
2.5 KiB
Go
66 lines
2.5 KiB
Go
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 TestBuyTariff(t *testing.T) {
|
|
jwtUtil := helpers.InitializeJWT()
|
|
|
|
t.Run("Успешная оплата корзины", func(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
assert.NotPanics(t, func() {
|
|
token, tokenErr := jwtUtil.Create("64e5d9830fcca0596d82c0c7")
|
|
if isNoError := assert.NoError(t, tokenErr); !isNoError {
|
|
return
|
|
}
|
|
|
|
responseAddCart, errAddCart := client.Patch[models.Account, models.ResponseErrorHTTP](ctx, &client.RequestSettings{
|
|
URL: "http://localhost:8000/cart",
|
|
Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)},
|
|
QueryParams: map[string]string{"id": "64e6105384368b75221a5c3e"},
|
|
})
|
|
if isNoError := assert.NoError(t, errAddCart); !isNoError {
|
|
return
|
|
}
|
|
if isNoRequestError := assert.Nil(t, responseAddCart.Error); !isNoRequestError {
|
|
return
|
|
}
|
|
|
|
isUserIDValid := assert.Equal(t, "64e5d9830fcca0596d82c0c7", responseAddCart.Body.UserID)
|
|
isCartLengthValid := assert.Equal(t, 1, len(responseAddCart.Body.Cart))
|
|
isCartItemValid := assert.Equal(t, "64e6105384368b75221a5c3e", responseAddCart.Body.Cart[0])
|
|
|
|
if isUserIDValid && isCartItemValid && isCartLengthValid {
|
|
responsePay, errPay := client.Post[models.Account, models.ResponseErrorHTTP](ctx, &client.RequestSettings{
|
|
URL: "http://localhost:8000/cart/pay",
|
|
Headers: map[string]string{"Authorization": fmt.Sprintf("Bearer %s", token)},
|
|
})
|
|
if isNoError := assert.NoError(t, errPay); !isNoError {
|
|
return
|
|
}
|
|
if isNoRequestError := assert.Nil(t, responsePay.Error); !isNoRequestError {
|
|
return
|
|
}
|
|
|
|
assert.Equal(t, "64e5d9830fcca0596d82c0c7", responsePay.Body.UserID)
|
|
assert.Equal(t, 0, len(responsePay.Body.Cart))
|
|
//assert.Equal(t, responseAddCart.Body.Wallet.Cash-5000, responsePay.Body.Wallet.Cash)
|
|
//assert.Equal(t, responseAddCart.Body.Wallet.Money-5000, responsePay.Body.Wallet.Money)
|
|
//assert.Equal(t, responseAddCart.Body.Wallet.Spent+5000, responsePay.Body.Wallet.Spent)
|
|
assert.Equal(t, responseAddCart.Body.Wallet.PurchasesAmount, responsePay.Body.Wallet.PurchasesAmount)
|
|
assert.Equal(t, "RUB", responsePay.Body.Wallet.Currency)
|
|
}
|
|
})
|
|
})
|
|
}
|