|
5 | 5 | use Illuminate\Http\UploadedFile;
|
6 | 6 | use Illuminate\Support\Facades\Response;
|
7 | 7 | use Illuminate\Support\Facades\Route;
|
| 8 | +use Illuminate\Support\Facades\View; |
8 | 9 | use Laravel\Telescope\EntryType;
|
9 | 10 | use Laravel\Telescope\Tests\FeatureTestCase;
|
10 | 11 | use Laravel\Telescope\Watchers\RequestWatcher;
|
@@ -176,4 +177,31 @@ public function test_request_watcher_plain_text_response()
|
176 | 177 | $this->assertSame(200, $entry->content['response_status']);
|
177 | 178 | $this->assertSame('plain telescope response', $entry->content['response']);
|
178 | 179 | }
|
| 180 | + |
| 181 | + public function test_request_watcher_calls_format_for_telescope_method_if_it_exists() |
| 182 | + { |
| 183 | + View::addNamespace('tests', __DIR__.'/../stubs/views'); |
| 184 | + |
| 185 | + Route::get('/fake-view', function () { |
| 186 | + return Response::make( |
| 187 | + View::make('tests::fake-view', ['items' => new FormatForTelescopeClass]) |
| 188 | + ); |
| 189 | + }); |
| 190 | + |
| 191 | + $this->get('/fake-view')->assertSuccessful(); |
| 192 | + |
| 193 | + $entry = $this->loadTelescopeEntries()->first(); |
| 194 | + $this->assertSame(EntryType::REQUEST, $entry->type); |
| 195 | + $this->assertEquals(['Telescope', 'Laravel', 'PHP'], $entry->content['response']['data']['items']['properties']); |
| 196 | + } |
| 197 | +} |
| 198 | + |
| 199 | +class FormatForTelescopeClass |
| 200 | +{ |
| 201 | + public function formatForTelescope(): array |
| 202 | + { |
| 203 | + return [ |
| 204 | + 'Telescope', 'Laravel', 'PHP', |
| 205 | + ]; |
| 206 | + } |
179 | 207 | }
|
0 commit comments