/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Integration/Session/SessionPersistenceTest.php
57 строк
2 KB
Jason McCreary
[13.x] Mockery cleanup (#61117)
10 авг 2026, 20:23
Не верифицирован
10 авг 2026, 20:23
2ee40ee
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Integration\Session; use Illuminate\Contracts\Debug\ExceptionHandler; use Illuminate\Http\Response; use Illuminate\Session\NullSessionHandler; use Illuminate\Session\TokenMismatchException; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Session; use Illuminate\Support\Str; use Mockery; use Orchestra\Testbench\TestCase; class SessionPersistenceTest extends TestCase { public function testSessionIsPersistedEvenIfExceptionIsThrownFromRoute() { $handler = new FakeNullSessionHandler; $this->assertFalse($handler->written); Session::extend('fake-null', function () use ($handler) { return $handler; }); Route::get('/', function () { throw new TokenMismatchException; })->middleware('web'); $this->get('/'); $this->assertTrue($handler->written); } protected function defineEnvironment($app) { $handler = Mockery::mock(ExceptionHandler::class)->shouldIgnoreMissing(); $app->instance(ExceptionHandler::class, $handler); $handler->expects('render')->andReturn(new Response); $app['config']->set('app.key', Str::random(32)); $app['config']->set('session.driver', 'fake-null'); $app['config']->set('session.expire_on_close', true); } } class FakeNullSessionHandler extends NullSessionHandler { public $written = false; public function write($sessionId, $data): bool { $this->written = true; return true; } }