diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5418df2..fd75a49 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,12 +8,12 @@ jobs: strategy: matrix: - php: [8.0, 8.1, 8.2] - laravel: [8] + php: [8.2, 8.3, 8.4] + laravel: [10, 11] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -23,17 +23,21 @@ jobs: extensions: ctype, iconv, intl, json, mbstring, pdo, pdo_sqlite coverage: none - - name: Checkout Laravel 8 Sample - if: matrix.laravel == 8 - uses: actions/checkout@v3 + - name: Set Laravel version reference + run: echo "LV_REF=${MATRIX_LARAVEL%.*}" >> $GITHUB_ENV + env: + MATRIX_LARAVEL: ${{ matrix.laravel }} + + - name: Checkout Laravel ${{ env.LV_REF }} Sample + uses: actions/checkout@v4 with: repository: codeception/laravel-module-tests path: framework-tests - ref: main + ref: ${{ env.LV_REF }}.x - name: Get composer cache directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache composer dependencies uses: actions/cache@v3 @@ -42,20 +46,27 @@ jobs: key: ${{ runner.os }}-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} restore-keys: ${{ runner.os }}-${{ matrix.php }}-composer- + - name: Install PHPUnit 11 + run: composer require --dev --no-update "phpunit/phpunit=^11.0" + - name: Install dependencies - run: composer install --prefer-dist --no-progress + run: | + composer require symfony/console:^6.0 || ^7.0 --no-update + composer require codeception/module-asserts="3.*" --no-update + composer update --prefer-dist --no-progress --no-dev - name: Validate composer.json and composer.lock - run: composer validate + run: composer validate --strict working-directory: framework-tests - name: Install Laravel Sample run: | composer remove codeception/module-laravel --dev --no-update - composer install --no-progress + composer require phpunit/phpunit:^11.0 --dev --no-update + composer update --no-progress working-directory: framework-tests - - name: Prepare the test environment and run test suite + - name: Prepare the test environment run: | cp .env.testing .env php artisan config:cache diff --git a/composer.json b/composer.json index 05879fa..ead9d2c 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ ], "minimum-stability": "RC", "require": { - "php": "^8.0", + "php": "^8.2", "ext-json": "*", "codeception/lib-innerbrowser": "^3.1 | ^4.0", "codeception/codeception": "^5.0.8", @@ -28,7 +28,7 @@ "require-dev": { "codeception/module-asserts": "^3.0", "codeception/module-rest": "^3.3", - "laravel/framework": "^8.0" + "laravel/framework": "^10.0 | ^11.0" }, "autoload": { "classmap": ["src/"] diff --git a/readme.md b/readme.md index 0b46c48..87f0ec6 100644 --- a/readme.md +++ b/readme.md @@ -9,8 +9,8 @@ A Codeception module for Laravel framework. ## Requirements -* `Laravel 8` or higher, as per the [Laravel supported versions](https://laravel.com/docs/master/releases#support-policy). -* `PHP 7.4` or higher. +* `Laravel 10` or higher, as per the [Laravel supported versions](https://laravel.com/docs/master/releases#support-policy). +* `PHP 8.2` or higher. ## Installation diff --git a/src/Codeception/Lib/Connector/Laravel.php b/src/Codeception/Lib/Connector/Laravel.php index ab07df3..2bdad83 100644 --- a/src/Codeception/Lib/Connector/Laravel.php +++ b/src/Codeception/Lib/Connector/Laravel.php @@ -111,7 +111,7 @@ protected function doRequest($request): Response $request = Request::createFromBase($request); $response = $this->kernel->handle($request); - $this->getHttpKernel()->terminate($request, $response); + $this->getHttpKernel()->terminate($this->app['request'], $response); return $response; } diff --git a/src/Codeception/Module/Laravel.php b/src/Codeception/Module/Laravel.php index a1bf8d9..129c5b7 100644 --- a/src/Codeception/Module/Laravel.php +++ b/src/Codeception/Module/Laravel.php @@ -24,6 +24,7 @@ use Codeception\Subscriber\ErrorHandler; use Codeception\TestInterface; use Codeception\Util\ReflectionHelper; +use Illuminate\Console\Application as Artisan; use Illuminate\Contracts\Config\Repository as Config; use Illuminate\Contracts\Foundation\Application as ApplicationContract; use Illuminate\Database\Connection; @@ -261,6 +262,8 @@ public function _after(TestInterface $test) unset($this->app[\Faker\Generator::class]); unset($this->app[\Illuminate\Database\Eloquent\Factory::class]); } + + Artisan::forgetBootstrappers(); } /**
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: