mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 07:47:22 +01:00
55 lines
1.6 KiB
PHP
55 lines
1.6 KiB
PHP
<?php
|
|
|
|
use Pest\Support\Str;
|
|
|
|
// HACK: we have to determine our $_SERVER['globalHook-]>calls baseline. This is because
|
|
// two other tests are executed before this one due to filename ordering.
|
|
$args = $_SERVER['argv'] ?? [];
|
|
$single = (isset($args[1]) && Str::endsWith(__FILE__, $args[1])) || ($_SERVER['PEST_PARALLEL'] ?? false);
|
|
$offset = $single ? 0 : 2;
|
|
|
|
uses()->beforeAll(function () use ($offset) {
|
|
expect($_SERVER['globalHook'])
|
|
->toHaveProperty('beforeAll')
|
|
->and($_SERVER['globalHook']->beforeAll)
|
|
->toBe(0)
|
|
->and($_SERVER['globalHook']->calls)
|
|
->beforeAll
|
|
->toBe(1 + $offset);
|
|
|
|
$_SERVER['globalHook']->beforeAll = 1;
|
|
$_SERVER['globalHook']->calls->beforeAll++;
|
|
});
|
|
|
|
beforeAll(function () use ($offset) {
|
|
expect($_SERVER['globalHook'])
|
|
->toHaveProperty('beforeAll')
|
|
->and($_SERVER['globalHook']->beforeAll)
|
|
->toBe(1)
|
|
->and($_SERVER['globalHook']->calls)
|
|
->beforeAll
|
|
->toBe(2 + $offset);
|
|
|
|
$_SERVER['globalHook']->beforeAll = 2;
|
|
$_SERVER['globalHook']->calls->beforeAll++;
|
|
});
|
|
|
|
test('global beforeAll execution order', function () use ($offset) {
|
|
expect($_SERVER['globalHook'])
|
|
->toHaveProperty('beforeAll')
|
|
->and($_SERVER['globalHook']->beforeAll)
|
|
->toBe(2)
|
|
->and($_SERVER['globalHook']->calls)
|
|
->beforeAll
|
|
->toBe(3 + $offset);
|
|
});
|
|
|
|
it('only gets called once per file', function () use ($offset) {
|
|
expect($_SERVER['globalHook'])
|
|
->beforeAll
|
|
->toBe(2)
|
|
->and($_SERVER['globalHook']->calls)
|
|
->beforeAll
|
|
->toBe(3 + $offset);
|
|
});
|