mohamedmohamedhekal / testharness
This package is abandoned and no longer maintained.
The author suggests using the mohamedhekal/testharness package instead.
Laravel/Pest testing utilities: time travel, queue asserts, API envelope asserts, and lightweight architecture checks
v0.1.0
2026-07-16 14:23 UTC
Requires
- php: ^8.2
- illuminate/http: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
- nesbot/carbon: ^2.72|^3.0
Requires (Dev)
- illuminate/bus: ^11.0|^12.0
- illuminate/queue: ^11.0|^12.0
- laravel/pint: ^1.18
- orchestra/testbench: ^9.0|^10.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/phpstan: ^2.0
README
Search terms: laravel, pest, testing, phpunit, queue, architecture, php, laravel-package, test-helpers, time-travel, dev-tools.
Laravel/Pest testing utilities: freeze time, assert queues, assert API envelopes, tenant test bags, and lightweight architecture checks.
Installation
composer require mohamedhekal/testharness --dev
Time travel
use Hekal\TestHarness\Support\TimeTravel; TimeTravel::freeze('2026-01-15 10:00:00'); TimeTravel::travel(hours: 2); TimeTravel::back(); $value = withFrozenTime('2026-07-01 08:00:00', fn () => now()->toDateString());
Queues
Queue::fake(); QueueAssert::assertPushed(MyJob::class, fn (MyJob $job) => $job->id === 1);
API envelopes
Compatible with ApiForge-style { data, error, meta }:
ApiEnvelopeAssert::assertOk($response); ApiEnvelopeAssert::assertError($response, 'validation_failed', 422);
Architecture
Architecture::assertStrictTypes(__DIR__.'/../src'); Architecture::assertForbiddenFunctions(__DIR__.'/../src', ['dd', 'dump', 'ray']);
Tenant bag
TenantContext::run(['tenant_id' => 5], function () { // compose with your tenancy package inside the callback });
Trait
use Hekal\TestHarness\Concerns\InteractsWithTestHarness; abstract class TestCase extends \Tests\TestCase { use InteractsWithTestHarness; }
Limitations (v0.1)
- Not a full Pest plugin—helpers + asserts only
- Architecture checks are regex-based, not PHPStan
- Queue asserts require
Queue::fake()first
Testing
composer install && composer test
License
MIT