test(DateHelper): add integration tests for date parsing and formatting
This commit introduces integration tests for the DatesHelper class, ensuring correct functionality for date parsing, range verification, and RFC3339 formatting.
This commit is contained in:
parent
57756ce6ae
commit
eacfd828f0
1 changed files with 67 additions and 0 deletions
67
tests/Integration/Shared/Helpers/DateHelperTest.php
Normal file
67
tests/Integration/Shared/Helpers/DateHelperTest.php
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Illuminate\Support\Facades\Date;
|
||||
use Shared\Helpers\DatesHelper;
|
||||
|
||||
covers(DatesHelper::class);
|
||||
|
||||
afterEach(function () {
|
||||
\Mockery::close();
|
||||
Date::clearResolvedInstances();
|
||||
});
|
||||
|
||||
describe('Date Helper', function (): void {
|
||||
it('can parse a date time', function (): void {
|
||||
// GIVEN
|
||||
$date = '2025-12-25 12:10:23';
|
||||
|
||||
// WHEN
|
||||
$result = DatesHelper::parseDateTime($date);
|
||||
|
||||
// THEN
|
||||
expect($result)->toBeInstanceOf(\DateTimeInterface::class)
|
||||
->and($result->format('Y-m-d'))->toBe('2025-12-25')
|
||||
->and($result->format('H:i:s'))->toBe('12:10:23');
|
||||
});
|
||||
|
||||
it('can verify a date is in between', function (): void {
|
||||
// GIVEN
|
||||
$now = Date::create(2025, 12, 25, 12, 0, 0);
|
||||
$from = Date::createFromDate(2025, 12, 24);
|
||||
$to = Date::createFromDate(2025, 12, 26);
|
||||
|
||||
// WHEN
|
||||
Date::setTestNow($now);
|
||||
$result = DatesHelper::isIn($from, $to);
|
||||
|
||||
// THEN
|
||||
expect($result)->toBeTruthy();
|
||||
});
|
||||
|
||||
it('can verify a date is not in between', function (): void {
|
||||
// GIVEN
|
||||
$now = Date::create(2025, 12, 25, 12, 0, 0);
|
||||
$from = Date::createFromDate(2025, 12, 26);
|
||||
$to = Date::createFromDate(2025, 12, 27);
|
||||
|
||||
// WHEN
|
||||
Date::setTestNow($now);
|
||||
$result = DatesHelper::isIn($from, $to);
|
||||
|
||||
// THEN
|
||||
expect($result)->toBeFalse();
|
||||
});
|
||||
|
||||
it('can format a date time to RFC3339', function (): void {
|
||||
// GIVEN
|
||||
$date = '2025-12-25 12:10:23';
|
||||
|
||||
// WHEN
|
||||
$result = DatesHelper::toRfc3339($date);
|
||||
|
||||
// THEN
|
||||
expect($result)->toBe('2025-12-25T12:10:23+00:00');
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Reference in a new issue