driade/sleepery

sleep and usleep wrappers to make them easier to test

1.0.2 2023-02-21 21:44 UTC

This package is auto-updated.

Last update: 2024-08-22 01:03:56 UTC


README

Packagist Tests Downloads

This package allows you to easily test the sleep() and usleep() functions without having to "wait".

Installation

You can install the package via composer:

composer require driade/sleepery

Usage

Instead of using sleep() in your code you should use

Driade\Sleepery::dream(1);

and, instead of using usleep() in your code you should use

Driade\Sleepery::nap(1000);

When it comes to test your code, you can use the "fake" function to make the calls to dream() and nap() recorded, so you can later test them.

In your tests

use Driade\Sleepery;

Sleepery::fake();

(new PerformAction)->handle(); // execute your code

Sleepery::wakeup();

//

Sleepery::assertDreamt(1);
Sleepery::assertNapped(1000);

You may also use the following functions

Sleepery::assertNeverDreamt(); // no call to sleep() was made
Sleepery::assertNeverNapped(); // no call to usleep() was made
Sleepery::getDreams(); // returns all the dream() calls while dreaming
Sleepery::getNaps(); // returns all the nap() calls while dreaming
Sleepery::wakeup(); // stop dreaming

Testing

composer test

Contributing

Please feel free to open an issue or pull request if you think something can be improved

Credits

License

The MIT License (MIT). Please see License File for more information.