PHP Classes

File: tests/Unit/Data/ApiResponseMetadataTest.php

Recommend this page to a friend!
  Packages of Daryl Legion   PayRex Laravel   tests/Unit/Data/ApiResponseMetadataTest.php   Download  
File: tests/Unit/Data/ApiResponseMetadataTest.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PayRex Laravel
Request payments using the PayRex service
Author: By
Last change:
Date: 13 days ago
Size: 1,315 bytes
 

Contents

Class file image Download
<?php

declare(strict_types=1);

use
LegionHQ\LaravelPayrex\Data\ApiResponseMetadata;

it('normalizes header keys to lowercase', function () {
   
$metadata = new ApiResponseMetadata(
       
headers: ['Content-Type' => 'application/json', 'X-Request-ID' => 'req_123'],
       
statusCode: 200,
    );

   
expect($metadata->headers)->toHaveKey('content-type')
        ->
and($metadata->headers)->toHaveKey('x-request-id')
        ->
and($metadata->headers)->not->toHaveKey('Content-Type')
        ->
and($metadata->headers)->not->toHaveKey('X-Request-ID');
});

it('stores the status code', function () {
   
$metadata = new ApiResponseMetadata(headers: [], statusCode: 429);

   
expect($metadata->statusCode)->toBe(429);
});

it('retrieves headers case-insensitively', function () {
   
$metadata = new ApiResponseMetadata(
       
headers: ['X-RateLimit-Remaining' => '99'],
       
statusCode: 200,
    );

   
expect($metadata->header('x-ratelimit-remaining'))->toBe('99')
        ->
and($metadata->header('X-RateLimit-Remaining'))->toBe('99')
        ->
and($metadata->header('X-RATELIMIT-REMAINING'))->toBe('99');
});

it('returns null for nonexistent headers', function () {
   
$metadata = new ApiResponseMetadata(headers: [], statusCode: 200);

   
expect($metadata->header('x-nonexistent'))->toBeNull();
});