feat(purchase
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"apskel-pos-be/internal/constants"
|
||||
"apskel-pos-be/internal/contract"
|
||||
"apskel-pos-be/internal/models"
|
||||
|
||||
@@ -95,6 +96,49 @@ func TestPurchasingAnalyticsModelToContractCopiesOutletName(t *testing.T) {
|
||||
require.Equal(t, float64(175), result.Data[0].ExpensePurchases)
|
||||
}
|
||||
|
||||
func TestPurchasingAnalyticsModelToContractCopiesTeamData(t *testing.T) {
|
||||
categoryID := uuid.New()
|
||||
|
||||
result := PurchasingAnalyticsModelToContract(&models.PurchasingAnalyticsResponse{
|
||||
OrganizationID: uuid.New(),
|
||||
Team: categoryID.String(),
|
||||
Summary: models.PurchasingSummary{TotalPurchases: 300, TotalTeams: 2},
|
||||
TeamData: []models.PurchasingTeamData{
|
||||
{
|
||||
Scope: constants.PurchaseTeamScopeCategory,
|
||||
CategoryID: &categoryID,
|
||||
Name: "Kitchen",
|
||||
TotalPurchases: 200,
|
||||
RawMaterialPurchases: 150,
|
||||
ExpensePurchases: 50,
|
||||
PurchaseOrderCount: 2,
|
||||
Quantity: 12,
|
||||
Percentage: 66.67,
|
||||
},
|
||||
{
|
||||
Scope: constants.PurchaseTeamNone,
|
||||
Name: constants.PurchaseTeamNoneName,
|
||||
TotalPurchases: 100,
|
||||
PurchaseOrderCount: 1,
|
||||
Percentage: 33.33,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require.NotNil(t, result)
|
||||
require.Equal(t, categoryID.String(), result.Team)
|
||||
require.Equal(t, int64(2), result.Summary.TotalTeams)
|
||||
require.Len(t, result.TeamData, 2)
|
||||
require.Equal(t, constants.PurchaseTeamScopeCategory, result.TeamData[0].Scope)
|
||||
require.Equal(t, &categoryID, result.TeamData[0].CategoryID)
|
||||
require.Equal(t, "Kitchen", result.TeamData[0].Name)
|
||||
require.Equal(t, float64(200), result.TeamData[0].TotalPurchases)
|
||||
require.Equal(t, 66.67, result.TeamData[0].Percentage)
|
||||
require.Equal(t, constants.PurchaseTeamNone, result.TeamData[1].Scope)
|
||||
require.Nil(t, result.TeamData[1].CategoryID)
|
||||
require.Equal(t, constants.PurchaseTeamNoneName, result.TeamData[1].Name)
|
||||
}
|
||||
|
||||
func TestPurchasingAnalyticsModelToContractOmitsNilOutletName(t *testing.T) {
|
||||
result := PurchasingAnalyticsModelToContract(&models.PurchasingAnalyticsResponse{
|
||||
OrganizationID: uuid.New(),
|
||||
|
||||
Reference in New Issue
Block a user