Files
alrahma_sunday_school/tests/app/Services/FinancialCategorySummaryServiceTest.php
T
root 951bb32c3a
Deploy to Shared Hosting / Shared hosting deploy (push) Failing after 48s
Tests / PHPUnit (push) Successful in 1m27s
including purchase into expenses pie
2026-09-13 02:45:06 -04:00

38 lines
1.4 KiB
PHP

<?php
namespace Tests\App\Services;
use App\Services\FinancialCategorySummaryService;
use CodeIgniter\Test\CIUnitTestCase;
class FinancialCategorySummaryServiceTest extends CIUnitTestCase
{
public function testDonationsAreIncomeAndExcludedFromExpenses(): void
{
$summary = FinancialCategorySummaryService::summarize([
['category' => 'Books', 'amount' => 125.50],
['category' => 'Donation', 'amount' => 500],
['category' => 'Office Supplies', 'amount' => 75],
['category' => 'donation', 'amount' => 25],
]);
$this->assertSame(200.50, $summary['totalExpenses']);
$this->assertSame(525.0, $summary['donationIncome']);
$this->assertSame(['Books' => 125.50, 'Office Supplies' => 75.0], $summary['expenseCategories']);
$this->assertArrayNotHasKey('Donation', $summary['expenseCategories']);
}
public function testPurchasesAreIncludedInExpenseCategory(): void
{
$summary = FinancialCategorySummaryService::summarize([
['category' => 'Expense', 'amount' => 350],
['category' => 'Purchase', 'amount' => 25.50],
['category' => 'purchase', 'amount' => 10],
]);
$this->assertSame(385.50, $summary['totalExpenses']);
$this->assertSame(['Expense' => 385.50], $summary['expenseCategories']);
$this->assertArrayNotHasKey('Purchase', $summary['expenseCategories']);
}
}