|
4 | 4 |
|
5 | 5 | use Illuminate\Http\Request; |
6 | 6 | use Illuminate\Support\Facades\Gate; |
| 7 | +use Javaabu\MenuBuilder\Tests\Controllers\HomeController; |
7 | 8 | use Javaabu\MenuBuilder\Tests\Controllers\UsersController; |
8 | 9 | use Illuminate\Support\Facades\Route; |
9 | 10 | use Javaabu\MenuBuilder\Tests\InteractsWithDatabase; |
@@ -174,6 +175,42 @@ public function it_can_set_the_menu_item_controller(): void |
174 | 175 | $this->assertEquals('http://localhost/users', $menu_item->getLink()); |
175 | 176 | } |
176 | 177 |
|
| 178 | + /** @test */ |
| 179 | + public function it_can_set_menu_item_from_controller_with_params(): void |
| 180 | + { |
| 181 | + Route::get('/users/{user}', [UsersController::class, 'show']); |
| 182 | + |
| 183 | + $user = User::factory()->create(); |
| 184 | + |
| 185 | + $menu_item = MenuItem::make('Users') |
| 186 | + ->controller(UsersController::class, compact('user'), 'show'); |
| 187 | + |
| 188 | + $this->assertEquals(UsersController::class, $menu_item->getController()); |
| 189 | + $this->assertEquals('http://localhost/users/1', $menu_item->getLink()); |
| 190 | + |
| 191 | + $this->visit($menu_item->getLink()) |
| 192 | + ->seeText("User: {$user->name}"); |
| 193 | + } |
| 194 | + |
| 195 | + /** @test */ |
| 196 | + public function it_can_set_menu_item_for_index_method_from_controller_with_params(): void |
| 197 | + { |
| 198 | + Route::get('/{locale}/users', [HomeController::class, 'index']); |
| 199 | + |
| 200 | + $menu_item = MenuItem::make('Users') |
| 201 | + ->controller( |
| 202 | + HomeController::class, |
| 203 | + ['locale' => 'jp'], |
| 204 | + 'index' |
| 205 | + ); |
| 206 | + |
| 207 | + $this->assertEquals(HomeController::class, $menu_item->getController()); |
| 208 | + $this->assertEquals('http://localhost/jp/users', $menu_item->getLink()); |
| 209 | + |
| 210 | + $this->visit($menu_item->getLink()) |
| 211 | + ->seeText("Locale: jp"); |
| 212 | + } |
| 213 | + |
177 | 214 | /** @test */ |
178 | 215 | public function it_can_determine_active_state_from_controller(): void |
179 | 216 | { |
|
0 commit comments