Add grouping by outlet_id
This commit is contained in:
@@ -145,6 +145,52 @@ func TestAnalyticsProcessorGetPurchasingAnalyticsPassesOutletName(t *testing.T)
|
||||
require.Equal(t, float64(175), result.Data[0].ExpensePurchases)
|
||||
}
|
||||
|
||||
func TestAnalyticsProcessorGetPurchasingAnalyticsMapsOutletData(t *testing.T) {
|
||||
outletID := uuid.New()
|
||||
now := time.Date(2026, 5, 1, 0, 0, 0, 0, time.UTC)
|
||||
processor := NewAnalyticsProcessorImpl(&analyticsRepositoryStub{
|
||||
purchasingResult: &entities.PurchasingAnalytics{
|
||||
Summary: entities.PurchasingSummary{
|
||||
TotalPurchases: 500,
|
||||
},
|
||||
OutletData: []entities.PurchasingOutletData{
|
||||
{
|
||||
OutletID: &outletID,
|
||||
OutletName: "Outlet A",
|
||||
Purchases: 500,
|
||||
RawMaterialPurchases: 350,
|
||||
ExpensePurchases: 150,
|
||||
PurchaseOrders: 4,
|
||||
RawMaterialPurchaseOrders: 3,
|
||||
ExpenseCount: 2,
|
||||
Quantity: 10,
|
||||
Ingredients: 5,
|
||||
Vendors: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
}, expenseRepositoryStub{})
|
||||
|
||||
result, err := processor.GetPurchasingAnalytics(context.Background(), &models.PurchasingAnalyticsRequest{
|
||||
OrganizationID: uuid.New(),
|
||||
DateFrom: now,
|
||||
DateTo: now,
|
||||
GroupBy: "outlet_id",
|
||||
})
|
||||
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, result)
|
||||
require.Equal(t, "outlet_id", result.GroupBy)
|
||||
require.Empty(t, result.Data)
|
||||
require.Len(t, result.OutletData, 1)
|
||||
require.Equal(t, &outletID, result.OutletData[0].OutletID)
|
||||
require.Equal(t, "Outlet A", result.OutletData[0].OutletName)
|
||||
require.Equal(t, float64(500), result.OutletData[0].Purchases)
|
||||
require.Equal(t, float64(350), result.OutletData[0].RawMaterialPurchases)
|
||||
require.Equal(t, float64(150), result.OutletData[0].ExpensePurchases)
|
||||
require.Equal(t, int64(4), result.OutletData[0].PurchaseOrders)
|
||||
}
|
||||
|
||||
func TestAnalyticsProcessorGetProfitLossAnalyticsMapsOverviewAndReportFields(t *testing.T) {
|
||||
productID := uuid.New()
|
||||
categoryID := uuid.New()
|
||||
|
||||
Reference in New Issue
Block a user