Laravel Hetzner Storagebox

PHP MIT

Production-ready Laravel package for integrating Hetzner Storage Box into Laravel applications using the native Storage facade and filesystem API.

Stars
19
Forks
0
Downloads
2,357
Open Issues
0
Files main

Repository Files

Loading file structure...
tests/Feature/ConfigurationTest.php
<?php

namespace GhostCompiler\Hetzner\StorageBox\Tests\Feature;

use GhostCompiler\Hetzner\StorageBox\Http\Client\HetznerClient;
use GhostCompiler\Hetzner\StorageBox\Tests\TestCase;

class ConfigurationTest extends TestCase
{
    public function test_config_values_are_loaded()
    {
        $this->assertEquals('test-token', config('hetzner-storagebox.token'));
        $this->assertEquals('https://api.hetzner.com/v1', config('hetzner-storagebox.base_url'));
    }

    public function test_client_receives_config_values()
    {
        $this->app['config']->set('hetzner-storagebox.token', 'custom-token');
        $this->app['config']->set('hetzner-storagebox.timeout', 45);

        // Re-resolve client to apply changes
        $client = $this->app->make(HetznerClient::class);

        // Reflect token property or invoke request to see headers
        $reflection = new \ReflectionClass($client);
        $tokenProp = $reflection->getProperty('token');
        $tokenProp->setAccessible(true);
        $timeoutProp = $reflection->getProperty('timeout');
        $timeoutProp->setAccessible(true);

        $this->assertEquals('custom-token', $tokenProp->getValue($client));
        $this->assertEquals(45, $timeoutProp->getValue($client));
    }
}