From 41c8cf597523a6eef52962e2af125e834954d0c1 Mon Sep 17 00:00:00 2001 From: 40handz Date: Thu, 26 Feb 2026 11:25:37 -0500 Subject: [PATCH 1/4] Fix CVE-2025-45769 and unblock CI - Bump firebase/php-jwt from ^6.0 to ^7.0 to address CVE-2025-45769 (GHSA-2x45-7fc3-mxwq, CWE-326 inadequate encryption strength). v6.x accepts arbitrarily short HMAC keys; v7.0 enforces minimum key length and rejects weak secrets. - Bump doctrine/instantiator from 1.4.0 to ^1.5.0 to resolve a pre-existing dev dependency conflict that caused the prefer-lowest CI job to fail at dependency resolution before any tests could run. Closes #48. Co-authored-by: atymic --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index dbd27fd..0698690 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "require-dev": { "phpunit/phpunit": "^9.0", "symfony/yaml": "^5.0 || ^6.0", - "doctrine/instantiator": "1.4.0", + "doctrine/instantiator": "^1.5.0", "overtrue/phplint": "^4.0 || ^5.0" }, "autoload": { From cb5761e00c9fb4f16eb2945ff1d8383b7bb73d6e Mon Sep 17 00:00:00 2001 From: 40handz Date: Fri, 27 Feb 2026 11:57:56 -0500 Subject: [PATCH 2/4] Fix test fixture key length for firebase/php-jwt v7 compatibility The test secret key was 19 bytes, below the 32-byte minimum that firebase/php-jwt v7 enforces for HS256. Updated to a 32-byte key across all three test files. No logic changes. --- tests/InterestsTest.php | 30 +++++++++--------- tests/PushNotificationsTest.php | 14 ++++----- tests/UsersTest.php | 56 ++++++++++++++++----------------- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/tests/InterestsTest.php b/tests/InterestsTest.php index 8283601..747696d 100644 --- a/tests/InterestsTest.php +++ b/tests/InterestsTest.php @@ -22,7 +22,7 @@ public function testPublishToInterestsShouldMakeRequestIfValid(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToInterests( ["donuts"], @@ -49,7 +49,7 @@ public function testPublishToInterestsShouldMakeRequestIfValid(): void { $expectedHost = "a11aec92-146a-4708-9a62-8c61f46a82ad.pushnotifications.pusher.com"; $expectedContentType = "application/json"; - $expectedAuth = "Bearer EIJ2EESAH8DUUMAI8EE"; + $expectedAuth = "Bearer EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $expectedSDK = "pusher-push-notifications-php 2.0.0"; $expectedBody = [ @@ -94,7 +94,7 @@ public function testPublishToInterestsShouldErrorIfInterestsNotArray(): void { $this->expectException(TypeError::class); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( null, @@ -115,7 +115,7 @@ public function testPublishToInterestsShouldErrorIfNoInterests(): void { $this->expectExceptionMessage("Publishes must target at least one interest"); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( [], @@ -142,7 +142,7 @@ public function testPublishToInterestsShouldErrorIfTooManyInterests(): void { $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( $interests, @@ -163,7 +163,7 @@ public function testPublishToInterestsShouldErrorIfInterestNotString(): void { $this->expectExceptionMessage("not a string"); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( [null], @@ -191,7 +191,7 @@ public function testPublishToInterestsShouldErrorIfInterestTooLong(): void { $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( [$interest], @@ -215,7 +215,7 @@ public function testPublishToInterestsShouldErrorIfInterestContainsForbiddenChar $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( [$interest], @@ -239,7 +239,7 @@ public function testPublishToInterestsShouldErrorIfInterestIsEmptyString(): void $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( [$interest], @@ -259,7 +259,7 @@ public function testPublishToInterestsShouldErrorIfPublishBodyNotArray(): void { $this->expectException(TypeError::class); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToInterests( ["donuts"], @@ -284,7 +284,7 @@ public function testPublishToInterestsShouldErrorIfBadJsonReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToInterests( ["donuts"], @@ -321,7 +321,7 @@ public function testPublishToInterestsShouldErrorIf4xxErrorReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToInterests( ["donuts"], @@ -358,7 +358,7 @@ public function testPublishToInterestsShouldErrorIf5xxErrorReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToInterests( ["donuts"], @@ -395,7 +395,7 @@ public function testPublishToInterestsShouldErrorIfBadErrorJson(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToInterests( ["donuts"], @@ -432,7 +432,7 @@ public function testPublishToInterestsShouldErrorIfBadErrorSchema(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToInterests( ["donuts"], diff --git a/tests/PushNotificationsTest.php b/tests/PushNotificationsTest.php index 4882b99..96ecd4e 100644 --- a/tests/PushNotificationsTest.php +++ b/tests/PushNotificationsTest.php @@ -5,7 +5,7 @@ final class PushNotificationsTest extends TestCase { public function testConstructorShouldAcceptValidParams(): void { new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $this->assertTrue(true); } @@ -19,7 +19,7 @@ public function testConstructorShouldErrorIfInstanceIdNotGiven(): void { $this->expectException(Exception::class); $this->expectExceptionMessage("Required 'instanceId'"); new Pusher\PushNotifications\PushNotifications([ - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); } @@ -28,7 +28,7 @@ public function testConstructorShouldErrorIfInstanceIdNotString(): void { $this->expectExceptionMessage("'instanceId' must be a string"); new Pusher\PushNotifications\PushNotifications([ "instanceId" => null, - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); } @@ -37,7 +37,7 @@ public function testConstructorShouldErrorIfInstanceIdEmptyString(): void { $this->expectExceptionMessage("cannot be the empty string"); new Pusher\PushNotifications\PushNotifications([ "instanceId" => "", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); } @@ -73,7 +73,7 @@ public function testConstructorShouldErrorIfWrongClientTypeIsGiven(): void new Pusher\PushNotifications\PushNotifications( [ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], [] ); @@ -84,7 +84,7 @@ public function testConstructorShouldMakeANewClientIfNoneIsGiven(): void $notification = new Pusher\PushNotifications\PushNotifications( [ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], null ); @@ -100,7 +100,7 @@ public function testConstructShouldUseGivenClient(): void $notification = new Pusher\PushNotifications\PushNotifications( [ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client ); diff --git a/tests/UsersTest.php b/tests/UsersTest.php index 6d5c810..326595e 100644 --- a/tests/UsersTest.php +++ b/tests/UsersTest.php @@ -23,7 +23,7 @@ public function testPublishToUsersShouldMakeRequestIfValid(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToUsers( ["user-0001"], @@ -50,7 +50,7 @@ public function testPublishToUsersShouldMakeRequestIfValid(): void { $expectedHost = "a11aec92-146a-4708-9a62-8c61f46a82ad.pushnotifications.pusher.com"; $expectedContentType = "application/json"; - $expectedAuth = "Bearer EIJ2EESAH8DUUMAI8EE"; + $expectedAuth = "Bearer EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $expectedSDK = "pusher-push-notifications-php 2.0.0"; $expectedBody = [ @@ -95,7 +95,7 @@ public function testPublishToUsersShouldErrorIfUserIdsNotArray(): void { $this->expectException(TypeError::class); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToUsers( null, @@ -116,7 +116,7 @@ public function testPublishToUsersShouldErrorIfNoUserIds(): void { $this->expectExceptionMessage("Publishes must target at least one user"); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToUsers( [], @@ -143,7 +143,7 @@ public function testPublishToUsersShouldErrorIfTooManyUserIds(): void { $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToUsers( $userIds, @@ -163,7 +163,7 @@ public function testPublishToUsersShouldErrorIfUserIdNotString(): void { $this->expectException(TypeError::class); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToUsers( [null], @@ -191,7 +191,7 @@ public function testPublishToUsersShouldErrorIfUserIdTooLong(): void { $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToUsers( [$userId], @@ -215,7 +215,7 @@ public function testPublishToUsersShouldErrorIfUserIdIsEmptyString(): void { $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToUsers( [$userId], @@ -235,7 +235,7 @@ public function testPublishToUsersShouldErrorIfPublishBodyNotArray(): void { $this->expectException(TypeError::class); $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ]); $pushNotifications->publishToUsers( ["user-0001"], @@ -260,7 +260,7 @@ public function testPublishToUsersShouldErrorIfBadJsonReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToUsers( ["user-0001"], @@ -297,7 +297,7 @@ public function testPublishToUsersShouldErrorIf4xxErrorReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToUsers( ["user-0001"], @@ -334,7 +334,7 @@ public function testPublishToUsersShouldErrorIf5xxErrorReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToUsers( ["user-0001"], @@ -371,7 +371,7 @@ public function testPublishToUsersShouldErrorIfBadErrorJson(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToUsers( ["user-0001"], @@ -408,7 +408,7 @@ public function testPublishToUsersShouldErrorIfBadErrorSchema(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $result = $pushNotifications->publishToUsers( ["user-0001"], @@ -448,7 +448,7 @@ public function testDeleteUserShouldMakeRequestIfValid(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $pushNotifications->deleteUser("user-0001"); @@ -460,7 +460,7 @@ public function testDeleteUserShouldMakeRequestIfValid(): void { $expectedHost = "a11aec92-146a-4708-9a62-8c61f46a82ad.pushnotifications.pusher.com"; $expectedContentType = "application/json"; - $expectedAuth = "Bearer EIJ2EESAH8DUUMAI8EE"; + $expectedAuth = "Bearer EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $expectedSDK = "pusher-push-notifications-php 2.0.0"; $request = $container[0]["request"]; @@ -483,7 +483,7 @@ public function testDeleteUserShouldMakeRequestIfValid(): void { public function testDeleteUserShouldErrorIfUserIdNotAString(): void { $instanceId = "a11aec92-146a-4708-9a62-8c61f46a82ad"; - $secretKey = "EIJ2EESAH8DUUMAI8EE"; + $secretKey = "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $userId = []; $pushNotifications = new Pusher\PushNotifications\PushNotifications([ @@ -497,7 +497,7 @@ public function testDeleteUserShouldErrorIfUserIdNotAString(): void { public function testDeleteUserShouldErrorIfUserIdEmpty(): void { $instanceId = "a11aec92-146a-4708-9a62-8c61f46a82ad"; - $secretKey = "EIJ2EESAH8DUUMAI8EE"; + $secretKey = "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $userId = ""; $pushNotifications = new Pusher\PushNotifications\PushNotifications([ @@ -512,7 +512,7 @@ public function testDeleteUserShouldErrorIfUserIdEmpty(): void { public function testDeleteUserShouldErrorIfUserTooLong(): void { $instanceId = "a11aec92-146a-4708-9a62-8c61f46a82ad"; - $secretKey = "EIJ2EESAH8DUUMAI8EE"; + $secretKey = "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $userIdLength = 165; $userId = ""; @@ -544,7 +544,7 @@ public function testDeleteUserShouldNotErrorIfBadJsonReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $pushNotifications->deleteUser("user-0001"); $this->expectNotToPerformAssertions(); @@ -567,7 +567,7 @@ public function testDeleteUserShouldErrorIf4xxErrorReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $pushNotifications->deleteUser("user-0001"); } @@ -589,7 +589,7 @@ public function testDeleteUserShouldErrorIf5xxErrorReturned(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $pushNotifications->deleteUser("user-0001"); } @@ -611,7 +611,7 @@ public function testDeleteUserShouldErrorIfBadErrorJson(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $pushNotifications->deleteUser("user-0001"); } @@ -633,14 +633,14 @@ public function testDeleteUserShouldErrorIfBadErrorSchema(): void { // Make request $pushNotifications = new Pusher\PushNotifications\PushNotifications([ "instanceId" => "a11aec92-146a-4708-9a62-8c61f46a82ad", - "secretKey" => "EIJ2EESAH8DUUMAI8EE", + "secretKey" => "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T", ], $client); $pushNotifications->deleteUser("user-0001"); } public function testGenerateTokenShouldReturnToken(): void { $instanceId = "a11aec92-146a-4708-9a62-8c61f46a82ad"; - $secretKey = "EIJ2EESAH8DUUMAI8EE"; + $secretKey = "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $userId = "user-0001"; $pushNotifications = new Pusher\PushNotifications\PushNotifications([ @@ -670,7 +670,7 @@ public function testGenerateTokenShouldReturnToken(): void { public function testGenerateTokenShouldErrorIfUserIdNotAString(): void { $instanceId = "a11aec92-146a-4708-9a62-8c61f46a82ad"; - $secretKey = "EIJ2EESAH8DUUMAI8EE"; + $secretKey = "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $userId = []; $pushNotifications = new Pusher\PushNotifications\PushNotifications([ @@ -684,7 +684,7 @@ public function testGenerateTokenShouldErrorIfUserIdNotAString(): void { public function testGenerateTokenShouldErrorIfUserIdEmpty(): void { $instanceId = "a11aec92-146a-4708-9a62-8c61f46a82ad"; - $secretKey = "EIJ2EESAH8DUUMAI8EE"; + $secretKey = "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $userId = ""; $pushNotifications = new Pusher\PushNotifications\PushNotifications([ @@ -699,7 +699,7 @@ public function testGenerateTokenShouldErrorIfUserIdEmpty(): void { public function testGenerateTokenShouldErrorIfUserTooLong(): void { $instanceId = "a11aec92-146a-4708-9a62-8c61f46a82ad"; - $secretKey = "EIJ2EESAH8DUUMAI8EE"; + $secretKey = "EIJ2EESAH8DUUMAI8EE3KL5MNP7QRS9T"; $userIdLength = 165; $userId = ""; From 6747ac96eb0148b31ee98e4bc08bb32387c0bcb7 Mon Sep 17 00:00:00 2001 From: 40handz Date: Fri, 27 Feb 2026 12:01:03 -0500 Subject: [PATCH 3/4] Tighten phplint constraint to ^5.5 phplint 5.4.0 (the prefer-lowest resolved version under ^4.0 || ^5.0) crashes with a fatal error on startup due to a missing symfony/options-resolver dependency. Fixed in 5.5.0. Narrowing to ^5.5 ensures prefer-lowest installs a working version. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 0698690..307994f 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "phpunit/phpunit": "^9.0", "symfony/yaml": "^5.0 || ^6.0", "doctrine/instantiator": "^1.5.0", - "overtrue/phplint": "^4.0 || ^5.0" + "overtrue/phplint": "^5.5" }, "autoload": { "psr-4": { From 6fb054514418fe62d5586e5f76fcd8385a939806 Mon Sep 17 00:00:00 2001 From: 40handz Date: Fri, 27 Feb 2026 12:11:54 -0500 Subject: [PATCH 4/4] Widen phplint constraint to ^4.5 || ^5.5 for PHP 8.0 compatibility phplint 5.5.0 requires php ^8.1, so ^5.5 broke PHP 8.0 CI jobs. ^4.5 || ^5.5 resolves 4.5.0 on PHP 8.0 and 5.5.0 on PHP 8.1 prefer-stable, avoiding all crashing versions (5.4.0) and PHP 8.1-only versions (5.4.2). --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 307994f..9258af2 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "phpunit/phpunit": "^9.0", "symfony/yaml": "^5.0 || ^6.0", "doctrine/instantiator": "^1.5.0", - "overtrue/phplint": "^5.5" + "overtrue/phplint": "^4.5 || ^5.5" }, "autoload": { "psr-4": {