/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Integration/Routing/RouteCanBackedEnumTest.php
40 строк
1 KB
Omegadela
[11.x] Allow `BackedEnum` to be passed to `Route::can()` (#52792)
16 сен 2024, 17:31
Не верифицирован
16 сен 2024, 17:31
56d6194
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Integration\Routing; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Route; use Orchestra\Testbench\TestCase; use User; class RouteCanBackedEnumTest extends TestCase { public function testSimpleRouteWithStringBackedEnumCanAbilityGuestForbiddenThroughTheFramework() { $gate = Gate::define(AbilityBackedEnum::NotAccessRoute, fn (?User $user) => false); $this->assertArrayHasKey('not-access-route', $gate->abilities()); $route = Route::get('/', function () { return 'Hello World'; })->can(AbilityBackedEnum::NotAccessRoute); $this->assertEquals(['can:not-access-route'], $route->middleware()); $response = $this->get('/'); $response->assertForbidden(); } public function testSimpleRouteWithStringBackedEnumCanAbilityGuestAllowedThroughTheFramework() { $gate = Gate::define(AbilityBackedEnum::AccessRoute, fn (?User $user) => true); $this->assertArrayHasKey('access-route', $gate->abilities()); $route = Route::get('/', function () { return 'Hello World'; })->can(AbilityBackedEnum::AccessRoute); $this->assertEquals(['can:access-route'], $route->middleware()); $response = $this->get('/'); $response->assertOk(); $response->assertContent('Hello World'); } }