From 80a02fdc5281c65f58912054e8148d26101d9c9a Mon Sep 17 00:00:00 2001 From: ncoronel Date: Mon, 24 Aug 2026 16:12:55 -0300 Subject: [PATCH] feat(sale): add changed_at serialization to SaleModificationResource --- .../AdminApp/SaleModificationResource.php | 1 + .../Sale/SaleModificationResourceTest.php | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tests/Unit/Sale/SaleModificationResourceTest.php diff --git a/app/Domains/Sale/Resources/AdminApp/SaleModificationResource.php b/app/Domains/Sale/Resources/AdminApp/SaleModificationResource.php index c842c0a..8a9a651 100644 --- a/app/Domains/Sale/Resources/AdminApp/SaleModificationResource.php +++ b/app/Domains/Sale/Resources/AdminApp/SaleModificationResource.php @@ -23,6 +23,7 @@ class SaleModificationResource extends JsonResource 'attribute' => $this->attribute, 'old_value' => $this->old_value, 'new_value' => $this->new_value, + 'changed_at' => $this->changed_at->utc()->toIso8601String(), 'date' => $this->changed_at->format('Y-m-d'), 'time' => $this->changed_at->format('H:i:s'), 'actor_type' => $this->actor_type->value, diff --git a/tests/Unit/Sale/SaleModificationResourceTest.php b/tests/Unit/Sale/SaleModificationResourceTest.php new file mode 100644 index 0000000..1fe1386 --- /dev/null +++ b/tests/Unit/Sale/SaleModificationResourceTest.php @@ -0,0 +1,33 @@ +forceFill([ + 'id' => 1, + 'trackable_id' => 33, + 'attribute' => 'status', + 'old_value' => 'pending_payment', + 'new_value' => 'cancelled', + 'changed_at' => CarbonImmutable::parse('2026-08-24 17:53:00', 'UTC'), + 'actor_type' => 'system', + ]); + $modification->setRelation('trackable', null); + $modification->setRelation('user', null); + + $data = (new SaleModificationResource($modification))->resolve(Request::create('/')); + + $this->assertSame('2026-08-24T17:53:00+00:00', $data['changed_at']); + $this->assertSame('2026-08-24', $data['date']); + $this->assertSame('17:53:00', $data['time']); + } +}