This commit is contained in:
antv
2026-07-14 10:46:34 +07:00
parent 47a8892623
commit 9370e2fb3c
5 changed files with 159 additions and 29 deletions
+69 -3
View File
@@ -743,7 +743,7 @@ class AdminUserListStatsTest extends TestCase
'buyer' => 9002,
'num_card' => 5,
'seller' => 9001,
'date' => Carbon::now()->format('Y-m-d'),
'date' => Carbon::now()->startOfMonth()->toDateString(),
]);
// Transaction 2 (newest)
@@ -751,14 +751,14 @@ class AdminUserListStatsTest extends TestCase
'buyer' => 9002,
'num_card' => 10,
'seller' => 9001,
'date' => Carbon::now()->format('Y-m-d'),
'date' => Carbon::now()->startOfMonth()->addDay()->toDateString(),
]);
// Try to update older Transaction 1: change num_card from 5 to 6 (increase of 1)
$response = $this->actingAs($admin)->put(route('admin.add_cards.update', $oldAddCard->id), [
'num_card' => 6,
'seller' => 9001,
'date' => Carbon::now()->format('Y-m-d'),
'date' => Carbon::now()->startOfMonth()->toDateString(),
]);
$response->assertRedirect();
@@ -771,6 +771,72 @@ class AdminUserListStatsTest extends TestCase
$this->assertEquals(16, $member->card);
}
public function test_update_add_card_merges_records_on_same_date(): void
{
$admin = User::create([
'msnv' => 9001,
'name' => 'Admin User',
'mail' => 'admin@example.com',
'pass' => md5('password'),
'departments' => 1,
'role' => config('constants.ROLE_ADMIN'),
'status' => config('constants.STATUS_ACTIVE'),
'card' => 0,
'flag_send' => config('constants.FLAG_SEND_DISABLED'),
'first_login' => config('constants.FIRST_LOGIN_FALSE'),
]);
$member = User::create([
'msnv' => 9002,
'name' => 'Member User',
'mail' => 'member@example.com',
'pass' => md5('password'),
'departments' => 1,
'role' => config('constants.ROLE_MEMBER'),
'status' => config('constants.STATUS_ACTIVE'),
'card' => 15,
'flag_send' => config('constants.FLAG_SEND_ENABLED'),
'first_login' => config('constants.FIRST_LOGIN_FALSE'),
]);
// Record A on day 1
$recordA = \App\Models\AddCard::create([
'buyer' => 9002,
'num_card' => 5,
'seller' => 9001,
'date' => Carbon::now()->startOfMonth()->toDateString(),
]);
// Record B on day 10
$recordB = \App\Models\AddCard::create([
'buyer' => 9002,
'num_card' => 10,
'seller' => 9001,
'date' => Carbon::now()->startOfMonth()->addDays(9)->toDateString(),
]);
// Update Record B: set date to day 1, and set num_card to 10
$response = $this->actingAs($admin)->put(route('admin.add_cards.update', $recordB->id), [
'num_card' => 10,
'seller' => 9001,
'date' => Carbon::now()->startOfMonth()->toDateString(),
]);
$response->assertRedirect();
$response->assertSessionHasNoErrors();
// Record B should be deleted (merged)
$this->assertNull(\App\Models\AddCard::find($recordB->id));
// Record A should have 15 cards (5 + 10)
$recordA->refresh();
$this->assertEquals(15, $recordA->num_card);
// Member's card balance remains 15
$member->refresh();
$this->assertEquals(15, $member->card);
}
public function test_delete_add_card_successfully_updates_balance(): void
{
$admin = User::create([