Skip to content

Commit bdc2d62

Browse files
authored
GateCollector tests (#1545)
1 parent 47f25f2 commit bdc2d62

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace Barryvdh\Debugbar\Tests\DataCollector;
4+
5+
use Barryvdh\Debugbar\Tests\Models\User;
6+
use Barryvdh\Debugbar\Tests\TestCase;
7+
use Illuminate\Support\Facades\Gate;
8+
9+
class GateCollectorTest extends TestCase
10+
{
11+
public function testItCollectsGateChecks()
12+
{
13+
debugbar()->boot();
14+
15+
/** @var \Barryvdh\Debugbar\DataCollector\GateCollector $collector */
16+
$collector = debugbar()->getCollector('gate');
17+
$collector->useHtmlVarDumper(false);
18+
19+
$user = new User([
20+
'id' => 1,
21+
'name' => 'John Doe',
22+
'email' => '[email protected]',
23+
'password' => 'password',
24+
]);
25+
26+
$user->can('test');
27+
28+
Gate::before(function ($user, $ability, $result, $arguments = []) {
29+
return true;
30+
});
31+
32+
$user->can('test');
33+
34+
$collect = $collector->collect();
35+
$this->assertEquals(2, $collect['count']);
36+
37+
$gateError = $collect['messages'][0];
38+
$this->assertEquals('error', $gateError['label']);
39+
$this->assertEquals(
40+
'[ability => test, result => null, user => 1, arguments => []]',
41+
$gateError['message']
42+
);
43+
44+
$gateSuccess = $collect['messages'][1];
45+
$this->assertEquals('success', $gateSuccess['label']);
46+
$this->assertEquals(
47+
'[ability => test, result => true, user => 1, arguments => []]',
48+
$gateSuccess['message']
49+
);
50+
}
51+
}

tests/Models/User.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Barryvdh\Debugbar\Tests\Models;
44

5-
use Illuminate\Database\Eloquent\Model;
5+
use Illuminate\Foundation\Auth\User as Model;
66

77
class User extends Model
88
{

0 commit comments

Comments
 (0)