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('');
+});