diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index a04b486..a08842e 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -10,9 +10,11 @@ jobs: matrix: os: [ubuntu-latest] php: [8.4, 8.3, 8.2, 8.1, 8.0] - laravel: [11.*, 10.*, 9.*, 8.*] + laravel: [12.*, 11.*, 10.*, 9.*, 8.*] dependency-version: [prefer-stable] include: + - laravel: 12.* + testbench: 10.* - laravel: 11.* testbench: 9.* - laravel: 10.* @@ -22,6 +24,10 @@ jobs: - laravel: 8.* testbench: 6.* exclude: + - laravel: 12.* + php: 8.1 + - laravel: 12.* + php: 8.0 - laravel: 11.* php: 8.1 - laravel: 11.* @@ -50,7 +56,7 @@ jobs: - name: Install dependencies run: | - composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" "nesbot/carbon:>=2.62.1" --no-interaction --no-update + composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" "nesbot/carbon:>=2.72.6" --no-interaction --no-update composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - name: Execute tests diff --git a/composer.json b/composer.json index e1b7b60..92e74bc 100644 --- a/composer.json +++ b/composer.json @@ -27,13 +27,13 @@ ], "require": { "php": "^8.0", - "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^8.0|^9.0|^10.0|^11.0" + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0" }, "require-dev": { - "phpunit/phpunit": "^9.5|^10.5", - "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", - "pestphp/pest": "^1.22|^2.28" + "phpunit/phpunit": "^9.5|^10.5|^11.5", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.22|^2.28|^3.0" }, "autoload": { "psr-4": { diff --git a/tests/BladeTest.php b/tests/BladeTest.php index 97f9d05..a2fdb49 100644 --- a/tests/BladeTest.php +++ b/tests/BladeTest.php @@ -13,90 +13,92 @@ }) ->with([ 'an array' => [ - 'parameter' => ['key' => 'value'], - 'expected' => '', + ['key' => 'value'], + '', ], 'a boolean with value of `true`' => [ - 'parameter' => ['boolean' => true], - 'expected' => '', + ['boolean' => true], + '', ], 'a boolean with value of `false`' => [ - 'parameter' => ['boolean' => false], - 'expected' => '', + ['boolean' => false], + '', ], 'an integer' => [ - 'parameter' => ['number' => 5], - 'expected' => '', + ['number' => 5], + '', ], 'an float' => [ - 'parameter' => ['number' => 5.5], - 'expected' => '', + ['number' => 5.5], + '', ], 'null' => [ - 'parameter' => ['nothing' => null], - 'expected' => '', + ['nothing' => null], + '', ], 'a string with line breaks' => [ - 'parameter' => ['string' => "This is\r\n a test"], - 'expected' => '', + ['string' => "This is\r\n a test"], + '', ], 'a numeric string as a string' => [ - 'parameter' => ['socialSecurity' => '123456789'], - 'expected' => '', + ['socialSecurity' => '123456789'], + '', ], 'escapes tags in a string' => [ - 'parameter' => ['string' => "This is a "], - 'expected' => '', + ['string' => "This is a "], + '', ], 'arrayable objects' => [ - 'parameter' => new class () implements Arrayable { + new class () implements Arrayable { public function toArray() { return ['arrayableKey' => 'arrayableValue']; } }, - 'expected' => '', + '', ], 'JSON serializable objects' => [ - 'parameter' => new class () implements JsonSerializable { + new class () implements JsonSerializable { public function jsonSerialize() { return ['jsonKey' => 'jsonValue']; } }, - 'expected' => '', + '', ], 'an object that implements `toJson`' => [ - 'parameter' => new class () { + new class () { public function toJson() { return json_encode(['jsonKey' => 'jsonValue']); } }, - 'expected' => '', + '', ], 'an object that implements `toString`' => [ - 'parameter' => new class () { + new class () { public function __toString() { return 'string'; } }, - 'expected' => '', + '', ], ]); -it('can render data without a namespace') - ->tap(fn () => config()->set('blade-javascript.namespace', '')) - ->expect(fn () => renderView('keyValue')) - ->toEqual(''); +it('can render data without a namespace', function () { + config()->set('blade-javascript.namespace', ''); + expect(renderView('keyValue')) + ->toEqual(''); +}); it('cannot translate resources to Javascript') ->tap(fn () => renderView('variable', ['parameter' => fopen(__FILE__, 'r')])) ->throws(ErrorException::class); -it('can render a customized view') - ->tap(fn () => view()->replaceNamespace('bladeJavaScript', [__DIR__ . '/resources/views/override'])) - ->expect(fn () => renderView('keyValue')) - ->toEqual(''); +it('can render a customized view', function () { + view()->replaceNamespace('bladeJavaScript', [__DIR__ . '/resources/views/override']); + expect(renderView('keyValue')) + ->toEqual(''); +});