8000 Fix sampling at zero with Nova (#211) · laravel/nightwatch@73d99a7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 73d99a7

Browse files
authored
Fix sampling at zero with Nova (#211)
1 parent 253ead2 commit 73d99a7

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/Http/Middleware/Sample.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ public function __construct(private Core $nightwatch)
2121

2222
public static function rate(float $rate): string
2323
{
24+
$rate = (string) $rate;
25+
26+
if ($rate === '0') {
27+
$rate = '0.0';
28+
}
29+
2430
return static::class.':'.$rate;
2531
}
2632

tests/Feature/Http/Middleware/SampleTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
use Illuminate\Support\Facades\Route;
44
use Laravel\Nightwatch\Facades\Nightwatch;
55
use Laravel\Nightwatch\Http\Middleware\Sample;
6+
use PHPUnit\Framework\Attributes\DataProvider;
67
use Tests\TestCase;
78

89
class SampleTest extends TestCase
@@ -113,4 +114,21 @@ public function test_it_has_priority(): void
113114

114115
$response->assertOk();
115116
}
117+
118+
#[DataProvider('sampleRates')]
119+
public function test_it_can_sample_at_different_rates(float|int $rate, string $expected): void
120+
{
121+
$this->assertSame(Sample::rate($rate), $expected);
122+
}
123+
124+
public static function sampleRates(): iterable
125+
{
126+
yield [1, 'Laravel\Nightwatch\Http\Middleware\Sample:1'];
127+
yield [1.0, 'Laravel\Nightwatch\Http\Middleware\Sample:1'];
128+
yield [0.9999, 'Laravel\Nightwatch\Http\Middleware\Sample:0.9999'];
129+
yield [0.5, 'Laravel\Nightwatch\Http\Middleware\Sample:0.5'];
130+
yield [0.001, 'Laravel\Nightwatch\Http\Middleware\Sample:0.001'];
131+
yield [0, 'Laravel\Nightwatch\Http\Middleware\Sample:0.0'];
132+
yield [0.0, 'Laravel\Nightwatch\Http\Middleware\Sample:0.0'];
133+
}
116134
}

0 commit comments

Comments
 (0)
0