Merge pull request #344 from pestphp/callable-expect-fix

Forces higher order test callable expects to be closures
This commit is contained in:
Luke Downing
2021-07-11 09:04:59 +01:00
committed by GitHub
2 changed files with 5 additions and 1 deletions

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Pest\Support;
use Closure;
use Pest\Expectation;
use Pest\PendingObjects\TestCall;
use PHPUnit\Framework\TestCase;
@ -34,7 +35,7 @@ final class HigherOrderCallables
*/
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()
->toBe('bar');
test('does not treat method names as callables')
->expect('it')->toBeString();
it('can tap into the test')
->expect('foo')->toBeString()
->tap(function () { expect($this)->toBeInstanceOf(TestCase::class); })