Skip to content

Commit b705c56

Browse files
authored
Add queries tab tests (#1687)
1 parent dab9380 commit b705c56

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

tests/DebugbarBrowserTest.php

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
use Illuminate\Routing\Router;
66
use Laravel\Dusk\Browser;
7+
use Illuminate\Database\Events\QueryExecuted;
8+
use Illuminate\Database\Connection;
79

810
class DebugbarBrowserTest extends BrowserTestCase
911
{
@@ -65,6 +67,26 @@ protected function addWebRoutes(Router $router)
6567
return view('ajax');
6668
}
6769
]);
70+
71+
$router->get('web/query', [
72+
'uses' => function () {
73+
debugbar()->boot();
74+
75+
/** @var Connection $connection */
76+
$connection = $this->app['db']->connectUsing(
77+
'runtime-connection',
78+
[
79+
'driver' => 'sqlite',
80+
'database' => ':memory:',
81+
],
82+
);
83+
84+
$executedQuery = new QueryExecuted('SELECT * FROM users WHERE username = ?', ['debuguser'], 0, $connection);
85+
event($executedQuery);
86+
87+
return 'PONG';
88+
}
89+
]);
6890
}
6991

7092
/**
@@ -138,4 +160,42 @@ public function testItCapturesAjaxRequests()
138160
->assertSee('GET api/ping');
139161
});
140162
}
163+
164+
public function testDatabaseTabIsClickable()
165+
{
166+
$this->browse(function (Browser $browser) {
167+
$browser->visit('web/plain')
168+
->waitFor('.phpdebugbar')
169+
->assertDontSee('0 statements were executed')
170+
->click('.phpdebugbar-tab[data-collector="queries"]')
171+
->assertSee('0 statements were executed');
172+
});
173+
}
174+
175+
public function testDatabaseCollectsQueries()
176+
{
177+
if (version_compare($this->app->version(), '10', '<')) {
178+
$this->markTestSkipped('This test is not compatible with Laravel 9.x and below');
179+
}
180+
181+
$this->browse(function (Browser $browser) {
182+
$browser->visit('web/query')
183+
->waitFor('.phpdebugbar')
184+
->click('.phpdebugbar-tab-history')
185+
->assertSeeIn('.phpdebugbar-tab[data-collector="queries"] .phpdebugbar-badge', 2)
186+
->click('.phpdebugbar-tab[data-collector="queries"]')
187+
->screenshotElement('.phpdebugbar', 'queries-tab')
188+
->waitForText('executed')
189+
->assertSee('1 statement was executed')
190+
->with('.phpdebugbar-widgets-sqlqueries', function ($queriesPane) {
191+
$queriesPane->assertSee('SELECT * FROM users')
192+
->click('.phpdebugbar-widgets-expandable:nth-child(2)')
193+
->assertSee('Bindings')
194+
->assertSee('debuguser')
195+
->assertSee('Backtrace')
196+
->assertSee('LaravelDebugbar.php:');
197+
})
198+
->screenshotElement('.phpdebugbar', 'queries-expanded');
199+
});
200+
}
141201
}

0 commit comments

Comments
 (0)