Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
timacdonald committed Aug 20, 2023
1 parent 45746d0 commit 6d4bfa3
Showing 1 changed file with 56 additions and 2 deletions.
58 changes: 56 additions & 2 deletions tests/Feature/IngestTest.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
<?php

use Illuminate\Database\Events\QueryExecuted;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Schema;
use Laravel\Pulse\Facades\Pulse;

Expand All @@ -21,9 +24,60 @@

DB::table('users')->count();
expect(Pulse::queue())->toHaveCount(1);
expect(DB::table('pulse_queries')->count())->toBe(0);
Pulse::ignore(fn () => expect(DB::table('pulse_queries')->count())->toBe(0));

Pulse::store();
expect(Pulse::queue())->toHaveCount(0);
expect(DB::table('pulse_queries')->count())->toBe(1);
Pulse::ignore(fn () => expect(DB::table('pulse_queries')->count())->toBe(1));
});

it('does not ingest queries under the slow query threshold', function () {
Config::set('pulse.slow_query_threshold', 1000);
$listeners = Event::getRawListeners()[QueryExecuted::class];
Event::forget(QueryExecuted::class);
collect([
function (QueryExecuted $event) {
$event->time = 999;
},
...$listeners,
])->each(fn ($listener) => Event::listen(QueryExecuted::class, $listener));

DB::table('users')->count();
Pulse::store();

Pulse::ignore(fn () => expect(DB::table('pulse_queries')->count())->toBe(0));
});

it('ingests queries equal to the slow query threshold', function () {
Config::set('pulse.slow_query_threshold', 1000);
$listeners = Event::getRawListeners()[QueryExecuted::class];
Event::forget(QueryExecuted::class);
collect([
function (QueryExecuted $event) {
$event->time = 1000;
},
...$listeners,
])->each(fn ($listener) => Event::listen(QueryExecuted::class, $listener));

DB::table('users')->count();
Pulse::store();

Pulse::ignore(fn () => expect(DB::table('pulse_queries')->count())->toBe(1));
});

it('ingests queries over the slow query threshold', function () {
Config::set('pulse.slow_query_threshold', 1000);
$listeners = Event::getRawListeners()[QueryExecuted::class];
Event::forget(QueryExecuted::class);
collect([
function (QueryExecuted $event) {
$event->time = 1001;
},
...$listeners,
])->each(fn ($listener) => Event::listen(QueryExecuted::class, $listener));

DB::table('users')->count();
Pulse::store();

Pulse::ignore(fn () => expect(DB::table('pulse_queries')->count())->toBe(1));
});

0 comments on commit 6d4bfa3

Please sign in to comment.