service = new FuelPriceService(new StationTaggingService()); }); it('fetches and caches an access token', function (): void { Http::fake([ '*/oauth/generate_access_token' => Http::response([ 'data' => [ 'access_token' => 'test-token-abc', 'expires_in' => 3600, ], ]), ]); $token = $this->service->getAccessToken(); expect($token)->toBe('test-token-abc'); expect(Cache::get('fuel_finder_access_token'))->toBe('test-token-abc'); }); it('returns cached token without hitting API', function (): void { Cache::put('fuel_finder_access_token', 'cached-token', 3540); Http::fake(); $token = $this->service->getAccessToken(); expect($token)->toBe('cached-token'); Http::assertNothingSent(); });