Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/sdk-php. php sdk for openstatus www.openstatus.dev
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149<?php
declare(strict_types=1);
namespace Openstatus\Sdk\Tests\Unit;
use GuzzleHttp\Psr7\Response;use Openstatus\Health\V1\CheckRequest;use Openstatus\Sdk\ClientOptions;use Openstatus\Sdk\OpenstatusClient;use Openstatus\Sdk\Tests\Support\MockHttpClient;use PHPUnit\Framework\TestCase;
final class OpenstatusClientTest extends TestCase{ public function testExposesAllServiceNamespaces(): void { $http = new MockHttpClient(new Response(200, [], '{}')); $client = new OpenstatusClient(new ClientOptions(httpClient: $http));
self::assertInstanceOf(\Openstatus\Sdk\Namespaces\Health::class, $client->health); self::assertInstanceOf(\Openstatus\Sdk\Namespaces\Monitor::class, $client->monitor); self::assertInstanceOf(\Openstatus\Sdk\Namespaces\StatusReport::class, $client->statusReport); self::assertInstanceOf(\Openstatus\Sdk\Namespaces\StatusPage::class, $client->statusPage); self::assertInstanceOf(\Openstatus\Sdk\Namespaces\Maintenance::class, $client->maintenance); self::assertInstanceOf(\Openstatus\Sdk\Namespaces\Notification::class, $client->notification); }
public function testHealthServiceDispatchThroughClient(): void { $http = new MockHttpClient(new Response(200, [], '{"status":1}')); $client = new OpenstatusClient(new ClientOptions(httpClient: $http));
$client->health->v1->healthService->check(new CheckRequest());
$sent = $http->lastRequest; self::assertNotNull($sent); self::assertSame( 'https://api.openstatus.dev/rpc/openstatus.health.v1.HealthService/Check', (string) $sent->getUri(), ); }
public function testSendsApiKeyHeaderWhenConfigured(): void { $http = new MockHttpClient(new Response(200, [], '{}')); $client = new OpenstatusClient(new ClientOptions( apiKey: 'os-secret', httpClient: $http, ));
$client->health->v1->healthService->check(new CheckRequest());
$sent = $http->lastRequest; self::assertNotNull($sent); self::assertSame('os-secret', $sent->getHeaderLine('x-openstatus-key')); self::assertStringStartsWith('openstatus-php/', $sent->getHeaderLine('User-Agent')); }
public function testOmitsApiKeyHeaderWhenAbsent(): void { $previousKey = getenv('OPENSTATUS_API_KEY'); putenv('OPENSTATUS_API_KEY');
try { $http = new MockHttpClient(new Response(200, [], '{}')); $client = new OpenstatusClient(new ClientOptions(httpClient: $http)); $client->health->v1->healthService->check(new CheckRequest());
$sent = $http->lastRequest; self::assertNotNull($sent); self::assertFalse($sent->hasHeader('x-openstatus-key')); } finally { if (is_string($previousKey)) { putenv('OPENSTATUS_API_KEY=' . $previousKey); } } }
public function testFallsBackToEnvForApiKey(): void { $previousKey = getenv('OPENSTATUS_API_KEY'); putenv('OPENSTATUS_API_KEY=from-env');
try { $http = new MockHttpClient(new Response(200, [], '{}')); $client = new OpenstatusClient(new ClientOptions(httpClient: $http)); $client->health->v1->healthService->check(new CheckRequest());
$sent = $http->lastRequest; self::assertNotNull($sent); self::assertSame('from-env', $sent->getHeaderLine('x-openstatus-key')); } finally { if (is_string($previousKey)) { putenv('OPENSTATUS_API_KEY=' . $previousKey); } else { putenv('OPENSTATUS_API_KEY'); } } }
public function testFallsBackToEnvForBaseUrl(): void { $previousUrl = getenv('OPENSTATUS_API_URL'); putenv('OPENSTATUS_API_URL=https://staging.openstatus.dev');
try { $http = new MockHttpClient(new Response(200, [], '{}')); $client = new OpenstatusClient(new ClientOptions(httpClient: $http)); $client->health->v1->healthService->check(new CheckRequest());
$sent = $http->lastRequest; self::assertNotNull($sent); self::assertStringStartsWith('https://staging.openstatus.dev/', (string) $sent->getUri()); } finally { if (is_string($previousUrl)) { putenv('OPENSTATUS_API_URL=' . $previousUrl); } else { putenv('OPENSTATUS_API_URL'); } } }
public function testExplicitBaseUrlOverridesEnv(): void { $previousUrl = getenv('OPENSTATUS_API_URL'); putenv('OPENSTATUS_API_URL=https://env.example');
try { $http = new MockHttpClient(new Response(200, [], '{}')); $client = new OpenstatusClient(new ClientOptions( baseUrl: 'https://explicit.example', httpClient: $http, )); $client->health->v1->healthService->check(new CheckRequest());
$sent = $http->lastRequest; self::assertNotNull($sent); self::assertStringStartsWith('https://explicit.example/', (string) $sent->getUri()); } finally { if (is_string($previousUrl)) { putenv('OPENSTATUS_API_URL=' . $previousUrl); } else { putenv('OPENSTATUS_API_URL'); } } }}