test(end2end): update tests, remove mock data

Signed-off-by: Reza Mobaraki <rezam578@gmail.com>
This commit is contained in:
Reza Mobaraki 2024-10-08 21:33:04 +03:30
parent ebd05c16f7
commit 606650e32b
No known key found for this signature in database
GPG Key ID: 922CBCF25B541A6F
3 changed files with 86 additions and 130 deletions

View File

@ -7,7 +7,6 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"git.gocasts.ir/ebhomengo/niki/delivery/http_server/end2end/setup" "git.gocasts.ir/ebhomengo/niki/delivery/http_server/end2end/setup"
"git.gocasts.ir/ebhomengo/niki/entity"
addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address"
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
httpmsg "git.gocasts.ir/ebhomengo/niki/pkg/http_msg" httpmsg "git.gocasts.ir/ebhomengo/niki/pkg/http_msg"
@ -42,18 +41,7 @@ func (suite *BenefactorAddressTestSuit) SetupTest() {
suite.getAllExpected = map[string]interface{}{ suite.getAllExpected = map[string]interface{}{
"count": 1, "count": 1,
} }
suite.getExpected = addressparam.GetAddressResponse{
Address: entity.Address{
ID: suite.addressID,
PostalCode: "3719655861",
Address: "tehran sare koche 1",
Lat: 35.632508,
Lon: 51.452859,
Name: "home1",
CityID: 8,
BenefactorID: suite.benefactorID,
},
}
suite.createData = addressparam.BenefactorAddAddressRequest{ suite.createData = addressparam.BenefactorAddAddressRequest{
PostalCode: "3719655861", PostalCode: "3719655861",
Address: "create shiraz kaf sharo", Address: "create shiraz kaf sharo",
@ -72,10 +60,9 @@ func (suite *BenefactorAddressTestSuit) SetupTest() {
} }
} }
// TestBenefactorAddressGet tests the GET /address/:id endpoint
func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGet() { func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGet() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/address/%d", suite.addressID) url := fmt.Sprintf("/benefactors/addresses/%d", suite.addressID)
suite.T().Run("Success", func(t *testing.T) { suite.T().Run("Success", func(t *testing.T) {
responseRecord := CreateRequest("GET", url, token, nil) responseRecord := CreateRequest("GET", url, token, nil)
@ -84,13 +71,17 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGet() {
var response addressparam.GetAddressResponse var response addressparam.GetAddressResponse
err := json.NewDecoder(responseRecord.Body).Decode(&response) err := json.NewDecoder(responseRecord.Body).Decode(&response)
suite.Require().NoError(err, "could not decode response body") suite.Require().NoError(err, "could not decode response body")
address, sErr := services.BenefactorAddressSvc.Get(context.Background(),
addressparam.GetAddressRequest{
AddressID: suite.addressID,
BenefactorID: suite.benefactorID,
})
suite.Require().Equal(suite.addressID, response.Address.ID) suite.Require().NoError(sErr, "failed to get benefactor address")
suite.Require().Equal(suite.benefactorID, response.Address.BenefactorID) suite.Require().Equal(address.Data.PostalCode, response.Data.PostalCode)
suite.Require().Equal(suite.getExpected.Address.PostalCode, response.Address.PostalCode) suite.Require().Equal(address.Data.Address, response.Data.Address)
suite.Require().Equal(suite.getExpected.Address.Address, response.Address.Address) suite.Require().Equal(address.Data.Name, response.Data.Name)
suite.Require().Equal(suite.getExpected.Address.Name, response.Address.Name) suite.Require().Equal(address.Data.CityID, response.Data.CityID)
suite.Require().Equal(suite.getExpected.Address.CityID, response.Address.CityID)
}) })
suite.T().Run("Failure_Unauthorized", func(t *testing.T) { suite.T().Run("Failure_Unauthorized", func(t *testing.T) {
@ -99,10 +90,9 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGet() {
}) })
} }
// TestBenefactorAddressGetAll tests the GET /address/ endpoint
func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGetAll() { func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGetAll() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/address/") url := fmt.Sprintf("/benefactors/addresses")
suite.T().Run("Success", func(t *testing.T) { suite.T().Run("Success", func(t *testing.T) {
responseRecord := CreateRequest("GET", url, token, nil) responseRecord := CreateRequest("GET", url, token, nil)
@ -112,7 +102,7 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGetAll() {
err := json.NewDecoder(responseRecord.Body).Decode(&response) err := json.NewDecoder(responseRecord.Body).Decode(&response)
suite.Require().NoError(err, "could not decode response body") suite.Require().NoError(err, "could not decode response body")
suite.Require().Equal(suite.getAllExpected["count"], len(response.AllAddresses)) suite.Require().Equal(suite.getAllExpected["count"], len(response.Data))
}) })
suite.T().Run("Failure_Unauthorized", func(t *testing.T) { suite.T().Run("Failure_Unauthorized", func(t *testing.T) {
@ -121,10 +111,9 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressGetAll() {
}) })
} }
// TestBenefactorAddressCreate tests the POST /address/ endpoint
func (suite *BenefactorAddressTestSuit) TestBenefactorAddressCreate() { func (suite *BenefactorAddressTestSuit) TestBenefactorAddressCreate() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/address/") url := fmt.Sprintf("/benefactors/addresses")
suite.T().Run("Success", func(t *testing.T) { suite.T().Run("Success", func(t *testing.T) {
responseRecord := CreateRequest("POST", url, token, suite.createData) responseRecord := CreateRequest("POST", url, token, suite.createData)
@ -134,11 +123,11 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressCreate() {
err := json.NewDecoder(responseRecord.Body).Decode(&response) err := json.NewDecoder(responseRecord.Body).Decode(&response)
suite.Require().NoError(err, "could not decode response body") suite.Require().NoError(err, "could not decode response body")
suite.Require().Equal(suite.benefactorID, response.Address.BenefactorID) suite.Require().Equal(suite.benefactorID, response.Data.BenefactorID)
suite.Require().Equal(suite.createData.Address, response.Address.Address) suite.Require().Equal(suite.createData.Address, response.Data.Address)
suite.Require().Equal(suite.createData.PostalCode, response.Address.PostalCode) suite.Require().Equal(suite.createData.PostalCode, response.Data.PostalCode)
suite.Require().Equal(suite.createData.Name, response.Address.Name) suite.Require().Equal(suite.createData.Name, response.Data.Name)
suite.Require().Equal(suite.createData.CityID, response.Address.CityID) suite.Require().Equal(suite.createData.CityID, response.Data.CityID)
}) })
suite.T().Run("Failure_BadRequest", func(t *testing.T) { suite.T().Run("Failure_BadRequest", func(t *testing.T) {
@ -147,13 +136,12 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressCreate() {
}) })
} }
// TestBenefactorAddressUpdate tests the PATCH /address/:id endpoint
func (suite *BenefactorAddressTestSuit) TestBenefactorAddressUpdate() { func (suite *BenefactorAddressTestSuit) TestBenefactorAddressUpdate() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/address/%d", suite.addressID) url := fmt.Sprintf("/benefactors/addresses/%d", suite.addressID)
suite.T().Run("Success", func(t *testing.T) { suite.T().Run("Success", func(t *testing.T) {
responseRecord := CreateRequest("PATCH", url, token, suite.updateData) responseRecord := CreateRequest("PUT", url, token, suite.updateData)
suite.Require().Equal(http.StatusNoContent, responseRecord.Code) suite.Require().Equal(http.StatusNoContent, responseRecord.Code)
updatedAddress, sErr := services.BenefactorAddressSvc.Get(context.Background(), updatedAddress, sErr := services.BenefactorAddressSvc.Get(context.Background(),
@ -163,14 +151,14 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressUpdate() {
}) })
suite.Require().NoError(sErr, "failed to get benefactor address") suite.Require().NoError(sErr, "failed to get benefactor address")
suite.Require().Equal(suite.updateData.PostalCode, updatedAddress.Address.PostalCode) suite.Require().Equal(suite.updateData.PostalCode, updatedAddress.Data.PostalCode)
suite.Require().Equal(suite.updateData.Address, updatedAddress.Address.Address) suite.Require().Equal(suite.updateData.Address, updatedAddress.Data.Address)
suite.Require().Equal(suite.updateData.Name, updatedAddress.Address.Name) suite.Require().Equal(suite.updateData.Name, updatedAddress.Data.Name)
suite.Require().Equal(suite.updateData.CityID, updatedAddress.Address.CityID) suite.Require().Equal(suite.updateData.CityID, updatedAddress.Data.CityID)
}) })
suite.T().Run("Failure_Unauthorized", func(t *testing.T) { suite.T().Run("Failure_Unauthorized", func(t *testing.T) {
responseRecord := CreateRequest("PATCH", url, "", suite.updateData) // No token provided responseRecord := CreateRequest("PUT", url, "", suite.updateData) // No token provided
suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code) suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code)
}) })
} }
@ -178,7 +166,7 @@ func (suite *BenefactorAddressTestSuit) TestBenefactorAddressUpdate() {
// TestBenefactorAddressDelete tests the DELETE /address/:id endpoint // TestBenefactorAddressDelete tests the DELETE /address/:id endpoint
func (suite *BenefactorAddressTestSuit) TestBenefactorAddressDelete() { func (suite *BenefactorAddressTestSuit) TestBenefactorAddressDelete() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/address/%d", suite.addressID) url := fmt.Sprintf("/benefactors/addresses/%d", suite.addressID)
suite.T().Run("Success", func(t *testing.T) { suite.T().Run("Success", func(t *testing.T) {
responseRecord := CreateRequest("DELETE", url, token, nil) responseRecord := CreateRequest("DELETE", url, token, nil)

View File

@ -3,15 +3,14 @@
package end2end package end2end
import ( import (
"context"
"encoding/json" "encoding/json"
"fmt" "fmt"
"git.gocasts.ir/ebhomengo/niki/delivery/http_server/end2end/setup" "git.gocasts.ir/ebhomengo/niki/delivery/http_server/end2end/setup"
"git.gocasts.ir/ebhomengo/niki/entity"
benefactorkindboxparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box" benefactorkindboxparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box"
"github.com/stretchr/testify/suite" "github.com/stretchr/testify/suite"
"net/http" "net/http"
"testing" "testing"
"time"
) )
type BenefactorKindBoxTestSuite struct { type BenefactorKindBoxTestSuite struct {
@ -31,49 +30,29 @@ func (suite *BenefactorKindBoxTestSuite) SetupTest() {
teardown := setup.SeedMariaDB(testContainer.GetMariaDBConfig()) teardown := setup.SeedMariaDB(testContainer.GetMariaDBConfig())
suite.T().Cleanup(teardown) suite.T().Cleanup(teardown)
suite.benefactorPhone = "09384664404" suite.benefactorPhone = "09384664404"
suite.benefactorID = 1
suite.kindBoxID = 1 suite.kindBoxID = 1
suite.kindBboxGetAllExpected = map[string]interface{}{ suite.kindBboxGetAllExpected = map[string]interface{}{
"count": 1, "count": 1,
} }
suite.kindBoxGetExpected = benefactorkindboxparam.KindBoxGetResponse{
KindBox: entity.KindBox{
ID: suite.kindBoxID,
KindBoxReqID: 1,
BenefactorID: 1,
KindBoxType: "on-table",
Amount: 0,
SerialNumber: "serial-1",
Status: "delivered",
DeliverReferTimeID: 1,
DeliverReferDate: time.Now().AddDate(0, 0, 7).UTC(),
DeliverAddressID: 1,
SenderAgentID: 1,
DeliveredAt: time.Now().AddDate(0, 0, 7).UTC(),
ReturnReferTimeID: 0,
ReturnReferDate: time.Time{},
ReturnAddressID: 0,
ReceiverAgentID: 0,
ReturnedAt: time.Time{},
},
}
} }
// Test for GET /benefactor/kindboxes (Get All Kind Boxes) // Test for GET /benefactor/kindboxes (Get All Kind Boxes)
func (suite *BenefactorKindBoxTestSuite) TestBenefactorKindBoxGetAll() { func (suite *BenefactorKindBoxTestSuite) TestBenefactorKindBoxGetAll() {
suite.Run("Success", func() { suite.Run("Success", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxes") url := fmt.Sprintf("/benefactors/kindboxes")
responseRecord := CreateRequest("GET", url, token, nil) responseRecord := CreateRequest("GET", url, token, nil)
suite.Require().Equal(http.StatusOK, responseRecord.Code) suite.Require().Equal(http.StatusOK, responseRecord.Code)
var response benefactorkindboxparam.KindBoxGetAllResponse var response benefactorkindboxparam.KindBoxGetAllResponse
err := json.NewDecoder(responseRecord.Body).Decode(&response) err := json.NewDecoder(responseRecord.Body).Decode(&response)
suite.Require().NoError(err, "could not decode response") suite.Require().NoError(err, "could not decode response")
suite.Require().Equal(suite.kindBboxGetAllExpected["count"], len(response.AllKindBox)) suite.Require().Equal(suite.kindBboxGetAllExpected["count"], len(response.Data))
}) })
suite.Run("Failure_Unauthorized", func() { suite.Run("Failure_Unauthorized", func() {
url := fmt.Sprintf("/benefactor/kindboxes") url := fmt.Sprintf("/benefactors/kindboxes")
responseRecord := CreateRequest("GET", url, "invalid_token", nil) responseRecord := CreateRequest("GET", url, "invalid_token", nil)
suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code) suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code)
}) })
@ -83,7 +62,7 @@ func (suite *BenefactorKindBoxTestSuite) TestBenefactorKindBoxGetAll() {
func (suite *BenefactorKindBoxTestSuite) TestBenefactorKindBoxGet() { func (suite *BenefactorKindBoxTestSuite) TestBenefactorKindBoxGet() {
suite.Run("Success", func() { suite.Run("Success", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxes/%d", suite.kindBoxID) url := fmt.Sprintf("/benefactors/kindboxes/%d", suite.kindBoxID)
responseRecord := CreateRequest("GET", url, token, nil) responseRecord := CreateRequest("GET", url, token, nil)
suite.Require().Equal(http.StatusOK, responseRecord.Code) suite.Require().Equal(http.StatusOK, responseRecord.Code)
@ -91,40 +70,35 @@ func (suite *BenefactorKindBoxTestSuite) TestBenefactorKindBoxGet() {
err := json.NewDecoder(responseRecord.Body).Decode(&response) err := json.NewDecoder(responseRecord.Body).Decode(&response)
suite.Require().NoError(err, "could not decode response body") suite.Require().NoError(err, "could not decode response body")
suite.assertKindBoxFields(suite.kindBoxGetExpected.KindBox, response.KindBox) kindBox, sErr := services.BenefactorKindBoxSvc.Get(context.Background(),
benefactorkindboxparam.KindBoxGetRequest{
BenefactorID: suite.benefactorID,
KindBoxID: suite.kindBoxID,
})
suite.Require().NoError(sErr, "failed to get benefactor kind box")
suite.Require().Equal(kindBox.Data.ID, response.Data.ID)
suite.Require().Equal(kindBox.Data.KindBoxReqID, response.Data.KindBoxReqID)
suite.Require().Equal(kindBox.Data.BenefactorID, response.Data.BenefactorID)
suite.Require().Equal(kindBox.Data.KindBoxType, response.Data.KindBoxType)
suite.Require().Equal(kindBox.Data.Amount, response.Data.Amount)
suite.Require().Equal(kindBox.Data.SerialNumber, response.Data.SerialNumber)
suite.Require().Equal(kindBox.Data.Status, response.Data.Status)
suite.Require().Equal(kindBox.Data.DeliverReferTimeID, response.Data.DeliverReferTimeID)
suite.Require().Equal(kindBox.Data.DeliverReferDate, response.Data.DeliverReferDate)
}) })
suite.Run("Failure_NotFound", func() { suite.Run("Failure_NotFound", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxes/%d", 9999) // Non-existent ID url := fmt.Sprintf("/benefactors/kindboxes/%d", 9999) // Non-existent ID
responseRecord := CreateRequest("GET", url, token, nil) responseRecord := CreateRequest("GET", url, token, nil)
suite.Require().Equal(http.StatusUnprocessableEntity, responseRecord.Code) suite.Require().Equal(http.StatusUnprocessableEntity, responseRecord.Code)
}) })
suite.Run("Failure_Unauthorized", func() { suite.Run("Failure_Unauthorized", func() {
url := fmt.Sprintf("/benefactor/kindboxes/%d", suite.kindBoxID) url := fmt.Sprintf("/benefactors/kindboxes/%d", suite.kindBoxID)
responseRecord := CreateRequest("GET", url, "invalid_token", nil) responseRecord := CreateRequest("GET", url, "invalid_token", nil)
suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code) suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code)
}) })
} }
// Helper method to assert all fields of KindBox
func (suite *BenefactorKindBoxTestSuite) assertKindBoxFields(expected, actual entity.KindBox) {
suite.Require().Equal(expected.ID, actual.ID, "ID should match")
suite.Require().Equal(expected.KindBoxReqID, actual.KindBoxReqID, "KindBoxReqID should match")
suite.Require().Equal(expected.BenefactorID, actual.BenefactorID, "BenefactorID should match")
suite.Require().Equal(expected.KindBoxType, actual.KindBoxType, "KindBoxType should match")
suite.Require().Equal(expected.Amount, actual.Amount, "Amount should match")
suite.Require().Equal(expected.SerialNumber, actual.SerialNumber, "SerialNumber should match")
suite.Require().Equal(expected.Status, actual.Status, "Status should match")
suite.Require().Equal(expected.DeliverReferTimeID, actual.DeliverReferTimeID, "DeliverReferTimeID should match")
suite.Require().Equal(expected.DeliverReferDate.Format("2006-01-02"), actual.DeliverReferDate.Format("2006-01-02"), "DeliverReferDate should match")
suite.Require().Equal(expected.DeliverAddressID, actual.DeliverAddressID, "DeliverAddressID should match")
suite.Require().Equal(expected.SenderAgentID, actual.SenderAgentID, "SenderAgentID should match")
suite.Require().Equal(expected.DeliveredAt.Format("2006-01-02"), actual.DeliveredAt.Format("2006-01-02"), "DeliveredAt should match")
suite.Require().Equal(expected.ReturnReferTimeID, actual.ReturnReferTimeID, "ReturnReferTimeID should match")
suite.Require().Equal(expected.ReturnReferDate.Format("2006-01-02"), actual.ReturnReferDate.Format("2006-01-02"), "ReturnReferDate should match")
suite.Require().Equal(expected.ReturnAddressID, actual.ReturnAddressID, "ReturnAddressID should match")
suite.Require().Equal(expected.ReceiverAgentID, actual.ReceiverAgentID, "ReceiverAgentID should match")
suite.Require().Equal(expected.ReturnedAt.Format("2006-01-02"), actual.ReturnedAt.Format("2006-01-02"), "ReturnedAt should match")
}

View File

@ -24,7 +24,6 @@ type BenefactorKindBoxReqsTestSuite struct {
benefactorID uint benefactorID uint
kindBoxReqID uint kindBoxReqID uint
getAllExpected map[string]interface{} getAllExpected map[string]interface{}
getExpected map[string]interface{}
createData benefactorkindboxreqparam.KindBoxReqAddRequest createData benefactorkindboxreqparam.KindBoxReqAddRequest
updateData benefactorkindboxreqparam.KindBoxReqUpdateRequest updateData benefactorkindboxreqparam.KindBoxReqUpdateRequest
} }
@ -45,13 +44,6 @@ func (suite *BenefactorKindBoxReqsTestSuite) SetupTest() {
"count": 5, "count": 5,
} }
suite.getExpected = map[string]interface{}{
"kind_box_type": entity.KindBoxOnTable,
"deliver_address": uint(1),
"deliver_refer_date": time.Now().AddDate(0, 0, 7).UTC(),
"deliver_refer_time": uint(1),
}
suite.createData = benefactorkindboxreqparam.KindBoxReqAddRequest{ suite.createData = benefactorkindboxreqparam.KindBoxReqAddRequest{
KindBoxType: entity.KindBoxCylindrical, KindBoxType: entity.KindBoxCylindrical,
DeliverAddressID: uint(1), DeliverAddressID: uint(1),
@ -73,7 +65,7 @@ func (suite *BenefactorKindBoxReqsTestSuite) SetupTest() {
func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_GetAll_Success() { func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_GetAll_Success() {
suite.Run("Success", func() { suite.Run("Success", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxreqs/") url := fmt.Sprintf("/benefactors/kindboxreqs")
responseRecord := CreateRequest(http.MethodGet, url, token, nil) responseRecord := CreateRequest(http.MethodGet, url, token, nil)
suite.Require().Equal(http.StatusOK, responseRecord.Code) suite.Require().Equal(http.StatusOK, responseRecord.Code)
@ -81,11 +73,11 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_GetAll_Su
err := json.NewDecoder(responseRecord.Body).Decode(&response) err := json.NewDecoder(responseRecord.Body).Decode(&response)
suite.Require().NoError(err, "failed to decode response body") suite.Require().NoError(err, "failed to decode response body")
assert.Equal(suite.T(), suite.getAllExpected["count"], len(response.AllKindBoxReq)) assert.Equal(suite.T(), suite.getAllExpected["count"], len(response.Data))
}) })
suite.Run("Failure_Unauthorized", func() { suite.Run("Failure_Unauthorized", func() {
url := fmt.Sprintf("/benefactor/kindboxreqs/") url := fmt.Sprintf("/benefactors/kindboxreqs")
responseRecord := CreateRequest(http.MethodGet, url, "invalid_token", nil) responseRecord := CreateRequest(http.MethodGet, url, "invalid_token", nil)
suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code) suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code)
}) })
@ -94,7 +86,7 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_GetAll_Su
func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Get_Success() { func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Get_Success() {
suite.Run("Success", func() { suite.Run("Success", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxreqs/%d", suite.kindBoxReqID) url := fmt.Sprintf("/benefactors/kindboxreqs/%d", suite.kindBoxReqID)
responseRecord := CreateRequest(http.MethodGet, url, token, nil) responseRecord := CreateRequest(http.MethodGet, url, token, nil)
suite.Require().Equal(http.StatusOK, responseRecord.Code) suite.Require().Equal(http.StatusOK, responseRecord.Code)
@ -102,26 +94,29 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Get_Succe
err := json.NewDecoder(responseRecord.Body).Decode(&response) err := json.NewDecoder(responseRecord.Body).Decode(&response)
suite.Require().NoError(err, "failed to decode response body") suite.Require().NoError(err, "failed to decode response body")
assert.Equal(suite.T(), suite.kindBoxReqID, response.KindBoxReq.ID) kinBoxReq, err := services.BenefactorKindBoxReqSvc.Get(context.Background(),
assert.Equal(suite.T(), suite.getExpected["kind_box_type"], response.KindBoxReq.KindBoxType) benefactorkindboxreqparam.KindBoxReqGetRequest{
assert.Equal(suite.T(), suite.getExpected["deliver_address"], response.KindBoxReq.DeliverAddressID) BenefactorID: suite.benefactorID,
assert.Equal( KindBoxReqID: suite.kindBoxReqID,
suite.T(), })
suite.getExpected["deliver_refer_date"].(time.Time).Format("2006-01-02"),
response.KindBoxReq.DeliverReferDate.Format("2006-01-02"), suite.Require().NoError(err, "failed to get kind box request")
) assert.Equal(suite.T(), kinBoxReq.Data.KindBoxType, response.Data.KindBoxType)
assert.Equal(suite.T(), suite.getExpected["deliver_refer_time"], response.KindBoxReq.DeliverReferTimeID) assert.Equal(suite.T(), kinBoxReq.Data.CountRequested, response.Data.CountRequested)
assert.Equal(suite.T(), kinBoxReq.Data.Description, response.Data.Description)
assert.Equal(suite.T(), kinBoxReq.Data.DeliverReferTimeID, response.Data.DeliverReferTimeID)
}) })
suite.Run("Failure_NotFound", func() { suite.Run("Failure_NotFound", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxreqs/%d", 9999) // Non-existent ID url := fmt.Sprintf("/benefactors/kindboxreqs/%d", 9999) // Non-existent ID
responseRecord := CreateRequest(http.MethodGet, url, token, nil) responseRecord := CreateRequest(http.MethodGet, url, token, nil)
suite.Require().Equal(http.StatusNotFound, responseRecord.Code) suite.Require().Equal(http.StatusNotFound, responseRecord.Code)
}) })
suite.Run("Failure_Unauthorized", func() { suite.Run("Failure_Unauthorized", func() {
url := fmt.Sprintf("/benefactor/kindboxreqs/%d", suite.kindBoxReqID) url := fmt.Sprintf("/benefactors/kindboxreqs/%d", suite.kindBoxReqID)
responseRecord := CreateRequest(http.MethodGet, url, "invalid_token", nil) responseRecord := CreateRequest(http.MethodGet, url, "invalid_token", nil)
suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code) suite.Require().Equal(http.StatusUnauthorized, responseRecord.Code)
}) })
@ -130,7 +125,7 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Get_Succe
func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Create_Success() { func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Create_Success() {
suite.Run("Success", func() { suite.Run("Success", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxreqs/") url := fmt.Sprintf("/benefactors/kindboxreqs")
rec := CreateRequest(http.MethodPost, url, token, suite.createData) rec := CreateRequest(http.MethodPost, url, token, suite.createData)
suite.Require().Equal(http.StatusCreated, rec.Code) suite.Require().Equal(http.StatusCreated, rec.Code)
@ -138,14 +133,14 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Create_Su
err := json.NewDecoder(rec.Body).Decode(&response) err := json.NewDecoder(rec.Body).Decode(&response)
suite.Require().NoError(err, "failed to decode response body") suite.Require().NoError(err, "failed to decode response body")
assert.Equal(suite.T(), suite.createData.KindBoxType, response.KindBoxReq.KindBoxType) assert.Equal(suite.T(), suite.createData.KindBoxType, response.Data.KindBoxType)
assert.Equal(suite.T(), suite.createData.DeliverAddressID, response.KindBoxReq.DeliverAddressID) assert.Equal(suite.T(), suite.createData.DeliverAddressID, response.Data.DeliverAddressID)
assert.Equal(suite.T(), suite.createData.DeliverReferDate, response.KindBoxReq.DeliverReferDate) assert.Equal(suite.T(), suite.createData.DeliverReferDate, response.Data.DeliverReferDate)
assert.Equal(suite.T(), suite.createData.CountRequested, response.KindBoxReq.CountRequested) assert.Equal(suite.T(), suite.createData.CountRequested, response.Data.CountRequested)
}) })
suite.Run("Failure_Unauthorized", func() { suite.Run("Failure_Unauthorized", func() {
url := fmt.Sprintf("/benefactor/kindboxreqs/") url := fmt.Sprintf("/benefactors/kindboxreqs")
rec := CreateRequest(http.MethodPost, url, "invalid_token", suite.createData) rec := CreateRequest(http.MethodPost, url, "invalid_token", suite.createData)
suite.Require().Equal(http.StatusUnauthorized, rec.Code) suite.Require().Equal(http.StatusUnauthorized, rec.Code)
}) })
@ -154,7 +149,7 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Create_Su
func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Update_Success() { func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Update_Success() {
suite.Run("Success", func() { suite.Run("Success", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxreqs/%d", suite.kindBoxReqID) url := fmt.Sprintf("/benefactors/kindboxreqs/%d", suite.kindBoxReqID)
rec := CreateRequest(http.MethodPut, url, token, suite.updateData) rec := CreateRequest(http.MethodPut, url, token, suite.updateData)
suite.Require().Equal(http.StatusNoContent, rec.Code) suite.Require().Equal(http.StatusNoContent, rec.Code)
@ -166,20 +161,19 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Update_Su
) )
suite.Require().NoError(err, "failed to get kind box request") suite.Require().NoError(err, "failed to get kind box request")
assert.Equal(suite.T(), suite.updateData.KindBoxType, kindBoxReq.KindBoxType) assert.Equal(suite.T(), suite.updateData.CountRequested, kindBoxReq.Data.CountRequested)
assert.Equal(suite.T(), suite.updateData.CountRequested, kindBoxReq.CountRequested) assert.Equal(suite.T(), suite.updateData.Description, kindBoxReq.Data.Description)
assert.Equal(suite.T(), suite.updateData.Description, kindBoxReq.Description) assert.Equal(suite.T(), suite.updateData.DeliverReferTimeID, kindBoxReq.Data.DeliverReferTimeID)
assert.Equal(suite.T(), suite.updateData.DeliverReferTimeID, kindBoxReq.DeliverReferTimeID)
assert.Equal( assert.Equal(
suite.T(), suite.T(),
suite.updateData.DeliverReferDate.Format("2006-01-02"), suite.updateData.DeliverReferDate.Format("2006-01-02"),
kindBoxReq.DeliverReferDate.Format("2006-01-02"), kindBoxReq.Data.DeliverReferDate.Format("2006-01-02"),
) )
assert.Equal(suite.T(), suite.updateData.DeliverAddressID, kindBoxReq.DeliverAddressID) assert.Equal(suite.T(), suite.updateData.DeliverAddressID, kindBoxReq.Data.DeliverAddressID)
}) })
suite.Run("Failure_Unauthorized", func() { suite.Run("Failure_Unauthorized", func() {
url := fmt.Sprintf("/benefactor/kindboxreqs/%d", suite.kindBoxReqID) url := fmt.Sprintf("/benefactors/kindboxreqs/%d", suite.kindBoxReqID)
rec := CreateRequest(http.MethodPut, url, "invalid_token", suite.updateData) rec := CreateRequest(http.MethodPut, url, "invalid_token", suite.updateData)
suite.Require().Equal(http.StatusUnauthorized, rec.Code) suite.Require().Equal(http.StatusUnauthorized, rec.Code)
}) })
@ -188,7 +182,7 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Update_Su
func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Delete_Success() { func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Delete_Success() {
suite.Run("Success", func() { suite.Run("Success", func() {
token := LoginBenefactor(suite.benefactorPhone) token := LoginBenefactor(suite.benefactorPhone)
url := fmt.Sprintf("/benefactor/kindboxreqs/%d", suite.kindBoxReqID) url := fmt.Sprintf("/benefactors/kindboxreqs/%d", suite.kindBoxReqID)
rec := CreateRequest(http.MethodDelete, url, token, nil) rec := CreateRequest(http.MethodDelete, url, token, nil)
suite.Require().Equal(http.StatusOK, rec.Code) suite.Require().Equal(http.StatusOK, rec.Code)
@ -205,7 +199,7 @@ func (suite *BenefactorKindBoxReqsTestSuite) TestBenefactorKindBoxReqs_Delete_Su
}) })
suite.Run("Failure_Unauthorized", func() { suite.Run("Failure_Unauthorized", func() {
url := fmt.Sprintf("/benefactor/kindboxreqs/%d", suite.kindBoxReqID) url := fmt.Sprintf("/benefactors/kindboxreqs/%d", suite.kindBoxReqID)
rec := CreateRequest(http.MethodDelete, url, "invalid_token", nil) rec := CreateRequest(http.MethodDelete, url, "invalid_token", nil)
suite.Require().Equal(http.StatusUnauthorized, rec.Code) suite.Require().Equal(http.StatusUnauthorized, rec.Code)
}) })