Skip to content

Commit

Permalink
Merge pull request #86 from Treblle/feature/add-trace-id
Browse files Browse the repository at this point in the history
Feature/add trace
  • Loading branch information
JustSteveKing committed Nov 8, 2023
2 parents 18575fd + 5ac4b41 commit 6134b4d
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 18 deletions.
9 changes: 2 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: true
matrix:
php: [ 8.1 ]
php: [ 8.1, 8.2, 8.3 ]
laravel: [ 9.*, 10.* ]
exclude:
- php: 8.1
Expand All @@ -24,7 +24,7 @@ jobs:

steps:
- name: Checkout the code
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
Expand All @@ -40,8 +40,3 @@ jobs:
- name: Execute the tests
run: vendor/bin/phpunit --testdox

- name: 'Qodana Scan'
uses: JetBrains/qodana-action@main
env:
QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
16 changes: 15 additions & 1 deletion src/Middlewares/TreblleMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
use Treblle\Exceptions\ConfigurationException;
use Treblle\Exceptions\TreblleApiException;
Expand Down Expand Up @@ -44,7 +45,20 @@ public function handle(Request $request, Closure $next, string $projectId = null
self::$start = microtime(true);
self::$project = $projectId;

return $next($request);
if (! $request->headers->has('X-TREBLLE-TRACE-ID')) {
$request->headers->add([
'X-TREBLLE-TRACE-ID' => $id = Str::uuid(),
]);
}

/** @var SymfonyResponse $response */
$response = $next($request);

$response->headers->add([
'X-TREBLLE-TRACE-ID' => $request->headers->get('X-TREBLLE-TRACE-ID'),
]);

return $response;
}

/**
Expand Down
38 changes: 28 additions & 10 deletions tests/Middleware/TreblleMiddlewareTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,20 @@

final class TreblleMiddlewareTest extends TestCase
{
/**
* @test
* @return void
*/
protected function newMiddleware(): TreblleMiddleware
{
return app()->make(
abstract: TreblleMiddleware::class,
);
}

/** @test */
public function it_returns_a_response(): void
{
$request = new Request();
$response = new Response();

/**
* @var TreblleMiddleware $middleware
*/
$middleware = app()->make(
abstract: TreblleMiddleware::class,
);
$middleware = $this->newMiddleware();

$middlewareResponse = $middleware->handle(
request: $request,
Expand All @@ -37,4 +36,23 @@ public function it_returns_a_response(): void
actual: $middlewareResponse,
);
}

/** @test */
public function it_adds_trace_id_to_response(): void
{
$request = new Request();
$response = new Response();

$middleware = $this->newMiddleware();

$middlewareResponse = $middleware->handle(
request: $request,
next: fn () => $response,
);

$this->assertArrayHasKey(
key: 'x-treblle-trace-id',
array: $middlewareResponse->headers->all(),
);
}
}

0 comments on commit 6134b4d

Please sign in to comment.