diff --git a/.github/workflows/php-cs-fixer.yml b/.github/workflows/php-cs-fixer.yml index 07ea4a2c..00ec14de 100644 --- a/.github/workflows/php-cs-fixer.yml +++ b/.github/workflows/php-cs-fixer.yml @@ -18,17 +18,25 @@ concurrency: cancel-in-progress: true jobs: - php-cs-fixer: + lint: runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Run PHP CS Fixer - uses: docker://oskarstark/php-cs-fixer-ga + - uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 with: - args: --config=.php-cs-fixer.dist.php --allow-risky=yes - - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 + php-version: '8.2' + + - name: Install Dependencies + run: | + composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist + + - name: Run PHP CS Fixer + run: ./vendor/bin/php-cs-fixer fix --allow-risky=yes + + - name: Commit Changes + uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: 🪄 Code Style Fixes + commit_options: '--no-verify' diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 20b26c16..9792a19e 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -19,12 +19,12 @@ jobs: name: phpstan runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.4' + php-version: '8.5' coverage: none - name: Install composer dependencies diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 46e301fa..2002a394 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,14 +24,14 @@ jobs: fail-fast: true matrix: os: [ ubuntu-latest, windows-latest ] - php: [ 8.1, 8.2, 8.3, 8.4 ] + php: [ 8.2, 8.3, 8.4, 8.5 ] stability: [ prefer-lowest, prefer-stable ] name: P${{ matrix.php }} - ${{ matrix.stability }} - ${{ matrix.os }} steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 diff --git a/composer.json b/composer.json index 9fd431cc..4626f630 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ ], "homepage": "https://github.com/saloonphp/saloon", "require": { - "php": "^8.1", + "php": "^8.2", "guzzlehttp/guzzle": "^7.6", "guzzlehttp/promises": "^1.5 || ^2.0", "guzzlehttp/psr7": "^2.0", @@ -29,12 +29,12 @@ "require-dev": { "ext-simplexml": "*", "friendsofphp/php-cs-fixer": "^3.5", - "illuminate/collections": "^9.39 || ^10.0", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0", "league/flysystem": "^3.0", - "pestphp/pest": "^2.36.0 || ^3.8.2", + "pestphp/pest": "^2.36.0 || ^3.8.2 || ^4.1.4", "phpstan/phpstan": "^2.1.13", "saloonphp/xml-wrangler": "^1.1", - "spatie/ray": "^1.33", + "spatie/invade": "^2.1", "symfony/dom-crawler": "^6.0 || ^7.0", "symfony/var-dumper": "^6.3 || ^7.0" }, diff --git a/tests/Feature/GuzzleSenderTest.php b/tests/Feature/GuzzleSenderTest.php index 181e17b9..a19c28b9 100644 --- a/tests/Feature/GuzzleSenderTest.php +++ b/tests/Feature/GuzzleSenderTest.php @@ -5,6 +5,7 @@ use GuzzleHttp\Utils; use GuzzleHttp\Client; use GuzzleHttp\Psr7\Uri; +use Illuminate\Support\Arr; use GuzzleHttp\HandlerStack; use GuzzleHttp\Psr7\Response; use Saloon\Http\Senders\GuzzleSender; @@ -76,9 +77,20 @@ $handlerStack = $sender->getHandlerStack(); - // The HandlerStack::create() loads important default middleware + $saloonStack = invade($handlerStack)->stack; + $defaultStack = invade(HandlerStack::create())->stack; - expect($handlerStack)->toEqual(HandlerStack::create()); + expect($saloonStack)->toHaveSameSize($defaultStack)->toHaveCount(4); + + expect($saloonStack[0][1])->toBe($defaultStack[0][1]); + expect($saloonStack[1][1])->toBe($defaultStack[1][1]); + expect($saloonStack[2][1])->toBe($defaultStack[2][1]); + expect($saloonStack[3][1])->toBe($defaultStack[3][1]); + + expect($saloonStack[0][0])->toBeCallable(); + expect($saloonStack[1][0])->toBeCallable(); + expect($saloonStack[2][0])->toBeCallable(); + expect($saloonStack[3][0])->toBeCallable(); }); test('the guzzle sender has default options configured', function () { @@ -96,7 +108,15 @@ 'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, ]); - expect($freshClient->getConfig())->toEqual($client->getConfig()); + $saloonConfig = $client->getConfig(); + $defaultConfig = $freshClient->getConfig(); + + expect(Arr::except($saloonConfig, 'handler'))->toEqual(Arr::except($defaultConfig, 'handler')); + + $saloonStack = invade($saloonConfig['handler'])->stack; + $defaultStack = invade($defaultConfig['handler'])->stack; + + expect($saloonStack)->toHaveSameSize($defaultStack)->toHaveCount(4); }); test('you can set a custom handler stack on the guzzle sender', function () {