123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- <?php
- namespace Facade\Ignition\Tests\Actions;
- use Facade\FlareClient\Flare;
- use Facade\FlareClient\Glows\Glow;
- use Facade\Ignition\Actions\ShareReportAction;
- use Facade\Ignition\Tests\Mocks\FakeClient;
- use Facade\Ignition\Tests\TestCase;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Foundation\Auth\User;
- use Illuminate\Support\Arr;
- class ShareReportActionTest extends TestCase
- {
- /** @var \Facade\Flare\Tests\Mocks\FakeClient */
- protected $fakeClient;
- /** @var \Facade\Flare\Actions\ShareReportAction */
- protected $shareAction;
- public function setUp(): void
- {
- parent::setUp();
- $this->fakeClient = new FakeClient();
- $this->shareAction = new ShareReportAction($this->fakeClient);
- }
- /** @test */
- public function sharing_all_tabs_removes_no_data()
- {
- $report = $this->getTestReport();
- $this->shareAction->handle($report, [
- 'stackTraceTab',
- 'debugTab',
- 'userTab',
- 'requestTab',
- 'appTab',
- 'contextTab',
- ]);
- $sharedReport = $this->fakeClient->requests[0]['arguments']['report'];
- $this->assertEquals($report, $sharedReport);
- }
- /** @test */
- public function it_removes_user_data()
- {
- $report = $this->getTestReport();
- $this->shareAction->handle($report, [
- 'stackTraceTab',
- 'debugTab',
- 'requestTab',
- 'appTab',
- 'contextTab',
- ]);
- $sharedReport = $this->fakeClient->requests[0]['arguments']['report'];
- $this->assertFalse(Arr::has($sharedReport, 'context.user'));
- $this->assertFalse(Arr::has($sharedReport, 'context.request.ip'));
- $this->assertFalse(Arr::has($sharedReport, 'context.request.useragent'));
- }
- /** @test */
- public function it_removes_stack_frames_except_the_last_frame()
- {
- $report = $this->getTestReport();
- $this->shareAction->handle($report, [
- 'debugTab',
- 'requestTab',
- 'userTab',
- 'appTab',
- 'contextTab',
- ]);
- $sharedReport = $this->fakeClient->requests[0]['arguments']['report'];
- $this->assertCount(1, $sharedReport['stacktrace']);
- $this->assertSame($report['stacktrace'][0], $sharedReport['stacktrace'][0]);
- }
- /** @test */
- public function it_removes_debug_data()
- {
- $report = $this->getTestReport();
- $this->shareAction->handle($report, [
- 'stackTraceTab',
- 'requestTab',
- 'userTab',
- 'appTab',
- 'contextTab',
- ]);
- $sharedReport = $this->fakeClient->requests[0]['arguments']['report'];
- $this->assertCount(0, Arr::get($sharedReport, 'glows'));
- $this->assertFalse(Arr::has($sharedReport, 'context.dumps'));
- $this->assertFalse(Arr::has($sharedReport, 'context.logs'));
- $this->assertFalse(Arr::has($sharedReport, 'context.queries'));
- }
- /** @test */
- public function it_removes_request_data()
- {
- $report = $this->getTestReport();
- $this->shareAction->handle($report, [
- 'stackTraceTab',
- 'appTab',
- 'debugTab',
- 'userTab',
- 'contextTab',
- ]);
- $sharedReport = $this->fakeClient->requests[0]['arguments']['report'];
- $this->assertFalse(Arr::has($sharedReport, 'context.request'));
- $this->assertFalse(Arr::has($sharedReport, 'context.request_data'));
- $this->assertFalse(Arr::has($sharedReport, 'context.headers'));
- $this->assertFalse(Arr::has($sharedReport, 'context.session'));
- $this->assertFalse(Arr::has($sharedReport, 'context.cookies'));
- }
- /** @test */
- public function it_removes_context_data()
- {
- $report = $this->getTestReport();
- $this->shareAction->handle($report, [
- 'stackTraceTab',
- 'requestTab',
- 'appTab',
- 'debugTab',
- 'userTab',
- ]);
- $sharedReport = $this->fakeClient->requests[0]['arguments']['report'];
- $this->assertFalse(Arr::has($sharedReport, 'context.env'));
- $this->assertFalse(Arr::has($sharedReport, 'context.git'));
- $this->assertFalse(Arr::has($sharedReport, 'context.context'));
- $this->assertFalse(Arr::has($sharedReport, 'context.custom_context'));
- }
- /** @test */
- public function it_removes_app_data()
- {
- $report = $this->getTestReport();
- $this->shareAction->handle($report, [
- 'stackTraceTab',
- 'requestTab',
- 'debugTab',
- 'userTab',
- 'contextTab',
- ]);
- $sharedReport = $this->fakeClient->requests[0]['arguments']['report'];
- $this->assertFalse(Arr::has($sharedReport, 'context.view'));
- $this->assertFalse(Arr::has($sharedReport, 'context.route'));
- }
- protected function getTestReport(): array
- {
- Model::unguard();
- /** @var \Facade\Flare\Flare $flareClient */
- $flareClient = $this->app->make(Flare::class);
- $report = $flareClient->createReport(new \BadMethodCallException('Test Exception'));
- $userData = (new User([
- 'id' => 1,
- 'name' => 'Marcel',
- 'email' => 'marcel@beyondco.de',
- ]))->toArray();
- $report->addGlow(new Glow('Example Glow Data 1'));
- $report->addGlow(new Glow('Example Glow Data 2'));
- $report->group('user', $userData);
- $report->group('request', [
- 'ip' => '127.0.0.1',
- 'useragent' => 'some-useragent-string',
- ]);
- $dummyGroups = [
- 'request',
- 'request_data',
- 'headers',
- 'session',
- 'cookies',
- 'view',
- 'queries',
- 'route',
- 'user',
- 'env',
- 'git',
- 'context',
- 'logs',
- 'dumps',
- 'custom_context',
- ];
- foreach ($dummyGroups as $group) {
- $report->group($group, [
- 'key_1' => 'value',
- 'key_2' => 'value',
- ]);
- }
- return $report->toArray();
- }
- }
|