Skip to content

Commit 0814be6

Browse files
authored
Update JobsCollectorTest.php
1 parent 2b86bc9 commit 0814be6

File tree

1 file changed

+55
-53
lines changed

1 file changed

+55
-53
lines changed

tests/DataCollector/JobsCollectorTest.php

Lines changed: 55 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2,98 +2,100 @@
22

33
namespace Barryvdh\Debugbar\Tests\DataCollector;
44

5-
use Barryvdh\Debugbar\Tests\Models\Person;
6-
use Barryvdh\Debugbar\Tests\Models\User;
5+
use Barryvdh\Debugbar\Tests\Jobs\OrderShipped;
6+
use Barryvdh\Debugbar\Tests\Jobs\SendNotification;
77
use Barryvdh\Debugbar\Tests\TestCase;
8+
use Illuminate\Database\Migrations\Migration;
9+
use Illuminate\Database\Schema\Blueprint;
810
use Illuminate\Foundation\Testing\RefreshDatabase;
9-
use Illuminate\Support\Facades\Hash;
11+
use Illuminate\Support\Facades\Schema;
1012

11-
class ModelsCollectorTest extends TestCase
13+
class JobsCollectorTest extends TestCase
1214
{
1315
use RefreshDatabase;
1416

15-
public function testItCollectsRetrievedModels()
17+
protected function getEnvironmentSetUp($app)
18+
{
19+
$app['config']->set('debugbar.collectors.jobs', true);
20+
// The `sync` and `null` driver don't dispatch events
21+
// `database` or `redis` driver work great
22+
$app['config']->set('queue.default', 'database');
23+
24+
parent::getEnvironmentSetUp($app);
25+
}
26+
27+
public function testItCollectsDispatchedJobs()
1628
{
1729
$this->loadLaravelMigrations();
30+
$this->createJobsTable();
31+
1832
debugbar()->boot();
1933

2034
/** @var \DebugBar\DataCollector\ObjectCountCollector $collector */
21-
$collector = debugbar()->getCollector('models');
35+
$collector = debugbar()->getCollector('jobs');
2236
$collector->setXdebugLinkTemplate('');
23-
$collector->collectCountSummary(false);
2437
$collector->setKeyMap([]);
2538
$data = [];
2639

27-
$this->assertEquals(
28-
['data' => $data, 'key_map' => [], 'count' => 0, 'is_counter' => true],
29-
$collector->collect()
30-
);
31-
32-
User::create([
33-
'name' => 'John Doe',
34-
'email' => '[email protected]',
35-
'password' => Hash::make('password'),
36-
]);
37-
38-
User::create([
39-
'name' => 'Jane Doe',
40-
'email' => '[email protected]',
41-
'password' => Hash::make('password'),
42-
]);
43-
44-
$data[User::class] = ['created' => 2];
4540
$this->assertEquals(
4641
[
4742
'data' => $data,
48-
'count' => 2,
43+
'count' => 0,
4944
'is_counter' => true,
50-
'key_map' => [
51-
],
45+
'key_map' => []
5246
],
5347
$collector->collect()
5448
);
5549

56-
$user = User::first();
57-
58-
$data[User::class]['retrieved'] = 1;
59-
$this->assertEquals(
60-
['data' => $data, 'key_map' => [], 'count' => 3, 'is_counter' => true],
61-
$collector->collect()
62-
);
63-
64-
$user->update(['name' => 'Jane Doe']);
50+
OrderShipped::dispatch(1);
6551

66-
$data[User::class]['updated'] = 1;
52+
$data[OrderShipped::class] = ['value' => 1];
6753
$this->assertEquals(
6854
[
6955
'data' => $data,
70-
'count' => 4,
56+
'count' => 1,
7157
'is_counter' => true,
72-
'key_map' => [],
58+
'key_map' => []
7359
],
7460
$collector->collect()
7561
);
7662

77-
Person::all();
63+
dispatch(new SendNotification());
64+
dispatch(new SendNotification());
65+
dispatch(new SendNotification());
7866

79-
$data[Person::class] = ['retrieved' => 2];
80-
$this->assertEquals(
81-
['data' => $data, 'key_map' => [], 'count' => 6, 'is_counter' => true],
82-
$collector->collect()
83-
);
84-
85-
$user->delete();
86-
87-
$data[User::class]['deleted'] = 1;
67+
$data[SendNotification::class] = ['value' => 3];
8868
$this->assertEquals(
8969
[
9070
'data' => $data,
91-
'count' => 7,
71+
'count' => 4,
9272
'is_counter' => true,
93-
'key_map' => [
94-
]
73+
'key_map' => []
9574
],
9675
$collector->collect()
9776
);
9877
}
78+
79+
protected function createJobsTable()
80+
{
81+
(new class extends Migration
82+
{
83+
public function up()
84+
{
85+
if (Schema::hasTable('jobs')) {
86+
return;
87+
}
88+
89+
Schema::create('jobs', function (Blueprint $table) {
90+
$table->bigIncrements('id');
91+
$table->string('queue')->index();
92+
$table->longText('payload');
93+
$table->unsignedTinyInteger('attempts');
94+
$table->unsignedInteger('reserved_at')->nullable();
95+
$table->unsignedInteger('available_at');
96+
$table->unsignedInteger('created_at');
97+
});
98+
}
99+
})->up();
100+
}
99101
}

0 commit comments

Comments
 (0)