Forces higher order test callable expects to be closures.

This commit is contained in:
luke
2021-07-11 07:56:02 +01:00
parent 5ab3c6e2d7
commit c160d97428
2 changed files with 5 additions and 1 deletions

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Pest\Support; namespace Pest\Support;
use Closure;
use Pest\Expectation; use Pest\Expectation;
use Pest\PendingObjects\TestCall; use Pest\PendingObjects\TestCall;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
@ -34,7 +35,7 @@ final class HigherOrderCallables
*/ */
public function expect($value) public function expect($value)
{ {
return new Expectation(is_callable($value) ? Reflection::bindCallable($value) : $value); return new Expectation($value instanceof Closure ? Reflection::bindCallable($value) : $value);
} }
/** /**

View File

@ -18,6 +18,9 @@ it('resolves expect callables correctly')
->toBeString() ->toBeString()
->toBe('bar'); ->toBe('bar');
test('does not treat method names as callables')
->expect('it')->toBeString();
it('can tap into the test') it('can tap into the test')
->expect('foo')->toBeString() ->expect('foo')->toBeString()
->tap(function () { expect($this)->toBeInstanceOf(TestCase::class); }) ->tap(function () { expect($this)->toBeInstanceOf(TestCase::class); })