Skip to content

Commit 94ed0fa

Browse files
Split tests
1 parent 3a7b670 commit 94ed0fa

File tree

4 files changed

+66
-19
lines changed

4 files changed

+66
-19
lines changed

tests/Unit/Request/CustomTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
$telemetry->custom($headerName, function (Request $req) {
1717
expect($req)->toBeInstanceOf(Request::class);
1818

19-
return 1234; // will be cast to string by TelemetryRequest::set
19+
return 1234;
2020
});
2121

2222
expect($request->headers->get($headerName))->toBe('1234');
@@ -32,7 +32,7 @@
3232
$telemetry = new TrackerRequest($request, $header);
3333

3434
$telemetry->custom($headerName, function () use (&$called) {
35-
$called = true; // must remain false if existing header is used
35+
$called = true;
3636

3737
return 'should-not-be-used';
3838
});

tests/Unit/Request/IpTest.php

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,50 @@
55
use DragonCode\RequestTracker\TrackerHeader;
66
use DragonCode\RequestTracker\TrackerRequest;
77

8-
it('gets ip with correct precedence and sets header via ip()', function () {
8+
test('If telemetry header exists, it wins', function () {
99
$header = new TrackerHeader;
1010

11-
// 1) If telemetry header exists, it wins
1211
$request = makeRequest([$header->ip => '203.0.113.10']);
1312
$telemetry = new TrackerRequest($request, $header);
13+
1414
expect($telemetry->getIp())->toBe('203.0.113.10');
15+
});
16+
17+
test('Else HTTP_X_REAL_IP (non-standard header name checked by the class)', function () {
18+
$header = new TrackerHeader;
1519

16-
// 2) Else HTTP_X_REAL_IP (non-standard header name checked by the class)
1720
$request = makeRequest();
1821
$request->headers->set('HTTP_X_REAL_IP', '198.51.100.20');
1922
$telemetry = new TrackerRequest($request, $header);
23+
2024
expect($telemetry->getIp())->toBe('198.51.100.20');
25+
});
26+
27+
test('Else client ip (REMOTE_ADDR)', function () {
28+
$header = new TrackerHeader;
2129

22-
// 3) Else client ip (REMOTE_ADDR)
2330
$request = makeRequest([], ['REMOTE_ADDR' => '192.0.2.30']);
2431
$telemetry = new TrackerRequest($request, $header);
32+
2533
expect($telemetry->getIp())->toBe('192.0.2.30');
34+
});
2635

27-
// 4) ip() without argument sets header from getIp()
36+
test('ip() without argument sets header from getIp()', function () {
37+
$header = new TrackerHeader;
38+
39+
$request = makeRequest();
40+
$telemetry = new TrackerRequest($request, $header);
2841
$telemetry->ip();
29-
expect($request->headers->get($header->ip))->toBe('192.0.2.30');
3042

31-
// 5) ip() with value overrides and sets header
43+
expect($request->headers->get($header->ip))->toBe('127.0.0.1');
44+
});
45+
46+
test('ip() with value overrides and sets header', function () {
47+
$header = new TrackerHeader;
48+
49+
$request = makeRequest();
50+
$telemetry = new TrackerRequest($request, $header);
3251
$telemetry->ip('10.0.0.1');
52+
3353
expect($request->headers->get($header->ip))->toBe('10.0.0.1');
3454
});

tests/Unit/Request/TrackIdTest.php

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,43 @@
66
use DragonCode\RequestTracker\TrackerRequest;
77
use Ramsey\Uuid\Uuid;
88

9-
it('gets or sets trace id, generating a UUID v4 when absent', function () {
9+
test('If header exists, return it', function () {
1010
$header = new TrackerHeader;
1111

12-
// 1) If header exists, return it
1312
$request = makeRequest([$header->traceId => 'trace-123']);
1413
$telemetry = new TrackerRequest($request, $header);
14+
1515
expect($telemetry->getTraceId())->toBe('trace-123');
16+
});
17+
18+
test('When absent, generate UUID', function () {
19+
$header = new TrackerHeader;
1620

17-
// 2) When absent, generate UUID v4
1821
$request = makeRequest();
1922
$telemetry = new TrackerRequest($request, $header);
2023
$generated = $telemetry->getTraceId();
24+
2125
expect(Uuid::isValid($generated))->toBeTrue()
2226
->and(Uuid::fromString($generated)->getVersion())->toBe(7);
27+
});
28+
29+
test('traceId() without param sets header using getTraceId()', function () {
30+
$header = new TrackerHeader;
2331

24-
// 3) traceId() without param sets header using getTraceId()
32+
$request = makeRequest();
33+
$telemetry = new TrackerRequest($request, $header);
2534
$telemetry->traceId();
35+
2636
expect($request->headers->has($header->traceId))->toBeTrue()
2737
->and(Uuid::isValid($request->headers->get($header->traceId)))->toBeTrue();
38+
});
39+
40+
test('traceId() with explicit value sets header', function () {
41+
$header = new TrackerHeader;
2842

29-
// 4) traceId() with explicit value sets header
43+
$request = makeRequest();
44+
$telemetry = new TrackerRequest($request, $header);
3045
$telemetry->traceId('manual-id');
46+
3147
expect($request->headers->get($header->traceId))->toBe('manual-id');
3248
});

tests/Unit/Request/UserIdTest.php

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,41 @@
55
use DragonCode\RequestTracker\TrackerHeader;
66
use DragonCode\RequestTracker\TrackerRequest;
77

8-
it('sets and gets user id with string and int, falling back to existing header or 0', function () {
8+
test('Explicit string', function () {
99
$header = new TrackerHeader;
1010

11-
// 1) Explicit string
1211
$request = makeRequest();
1312
$telemetry = new TrackerRequest($request, $header);
1413
$telemetry->userId('42');
14+
1515
expect($request->headers->get($header->userId))->toBe('42')
1616
->and($telemetry->getUserId())->toBe('42');
17+
});
18+
19+
test('Explicit int should be cast to string', function () {
20+
$header = new TrackerHeader;
1721

18-
// 2) Explicit int should be cast to string
1922
$request = makeRequest();
2023
$telemetry = new TrackerRequest($request, $header);
2124
$telemetry->userId(7);
25+
2226
expect($request->headers->get($header->userId))->toBe('7');
27+
});
28+
29+
test('Fallback to existing header when null', function () {
30+
$header = new TrackerHeader;
2331

24-
// 3) Fallback to existing header when null
2532
$request = makeRequest([$header->userId => '555']);
2633
$telemetry = new TrackerRequest($request, $header);
2734
$telemetry->userId(null);
35+
2836
expect($request->headers->get($header->userId))->toBe('555')
2937
->and($telemetry->getUserId())->toBe('555');
38+
});
39+
40+
test('getUserId() returns 0 when nothing present', function () {
41+
$header = new TrackerHeader;
3042

31-
// 4) getUserId() returns '0' when nothing present
3243
$request = makeRequest();
3344
$telemetry = new TrackerRequest($request, $header);
3445
expect($telemetry->getUserId())->toBeNull();

0 commit comments

Comments
 (0)