Skip to content

Instantly share code, notes, and snippets.

@nikspyratos
Forked from ace-of-aces/pest-ide-helper.php
Created January 6, 2026 05:51
Show Gist options
  • Select an option

  • Save nikspyratos/b7b718e240a114481c48c2c458e83db0 to your computer and use it in GitHub Desktop.

Select an option

Save nikspyratos/b7b718e240a114481c48c2c458e83db0 to your computer and use it in GitHub Desktop.
A helper file to improve Intellisense for PestPHP tests in VSCode
<?php
use Pest\Concerns\Expectable;
use Pest\PendingCalls\BeforeEachCall;
use Pest\PendingCalls\TestCall;
use Pest\Support\HigherOrderTapProxy;
use Tests\TestCase;
/**
* Runs the given closure before all tests in the current file.
*
* @param-closure-this TestCase $closure
*/
function beforeAll(Closure $closure): void {}
/**
* Runs the given closure before each test in the current file.
*
* @param-closure-this TestCase $closure
*
* @return HigherOrderTapProxy<Expectable|TestCall|TestCase>|Expectable|TestCall|TestCase|mixed
*
* @disregard P1075 Not all paths return a value.
*/
function beforeEach(?Closure $closure = null): BeforeEachCall {}
/**
* Adds the given closure as a test. The first argument
* is the test description; the second argument is
* a closure that contains the test expectations.
*
* @param-closure-this TestCase $closure
*
* @return Expectable|TestCall|TestCase|mixed
*
* @disregard P1075 Not all paths return a value.
*/
function test(?string $description = null, ?Closure $closure = null): HigherOrderTapProxy|TestCall {}
/**
* Adds the given closure as a test. The first argument
* is the test description; the second argument is
* a closure that contains the test expectations.
*
* @param-closure-this TestCase $closure
*
* @return Expectable|TestCall|TestCase|mixed
*
* @disregard P1075 Not all paths return a value.
*/
function it(string $description, ?Closure $closure = null): TestCall {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment