diff --git a/README.md b/README.md index e3a70cf..e611463 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ Integration of Nette Framework to Codeception. | State | Version | Branch | PHP | | |-------------|----------|----------|---------|-----------------| -| dev | `^1.3.0` | `master` | `^7.2` | | -| stable | `^1.2.0` | `master` | `^7.2` | | +| dev | `^1.4.0` | `master` | `^7.2` | | +| stable | `^1.3.0` | `master` | `^7.2` | | | stable | `^0.8.1` | `master` | `>=7.1` | (old namespace) | ## Maintainers diff --git a/codeception.yml b/codeception.yml index e7ee0f7..c570c2a 100644 --- a/codeception.yml +++ b/codeception.yml @@ -6,8 +6,9 @@ paths: data: tests/_data support: tests/_helpers +bootstrap: _bootstrap.php + settings: - bootstrap: _bootstrap.php log: true coverage: diff --git a/composer.json b/composer.json index 5c5b378..4e24114 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,8 @@ ], "require": { "php": "^7.2", - "codeception/codeception": "^2.5.1 || ^3.0.2", + "codeception/codeception": "^4.0.2", + "codeception/lib-innerbrowser": "^1.3", "nette/di": "^3.0", "nette/bootstrap": "^3.0", "nette/http": "^3.0.3", @@ -32,10 +33,10 @@ "nette/caching": "~2.5.8 || ^3.0", "ninjify/qa": "^0.10.0", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan-deprecation-rules": "^0.11", - "phpstan/phpstan-nette": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", "tracy/tracy": "~2.6.1 || ~2.7.0" }, "conflict": { @@ -61,7 +62,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.4.x-dev" } } } diff --git a/phpstan.neon b/phpstan.neon index cba2b27..421076b 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -20,5 +20,7 @@ parameters: # Complicated to test dev-required phpstan with separatly installed version - '#^Call to an undefined method PHPStan\\#' - # Symfony 4.3 deprecation message - - '#^Class Contributte\\Codeception\\Connector\\NetteConnector extends deprecated class Symfony\\Component\\BrowserKit\\Client(.+)#' + earlyTerminatingMethodCalls: + Codeception\Module: + - fail + diff --git a/src/Connector/NetteConnector.php b/src/Connector/NetteConnector.php index 0a77ba8..a4af8a1 100644 --- a/src/Connector/NetteConnector.php +++ b/src/Connector/NetteConnector.php @@ -9,12 +9,12 @@ use Nette\DI\Container; use Nette\Http\IRequest; use Nette\Http\IResponse; -use Symfony\Component\BrowserKit\Client; +use Symfony\Component\BrowserKit\AbstractBrowser; use Symfony\Component\BrowserKit\Request; use Symfony\Component\BrowserKit\Response; use Throwable; -class NetteConnector extends Client +class NetteConnector extends AbstractBrowser { /** @var callable */ diff --git a/src/DI/HttpExtension.php b/src/DI/HttpExtension.php index cf19e9d..8bf7a50 100644 --- a/src/DI/HttpExtension.php +++ b/src/DI/HttpExtension.php @@ -15,14 +15,14 @@ public function beforeCompile(): void { $builder = $this->getContainerBuilder(); - $request = $builder->getByType(IRequest::class) ?: 'httpRequest'; + $request = $builder->getByType(IRequest::class) ?? 'httpRequest'; if ($builder->hasDefinition($request)) { $builder->getDefinition($request) ->setType(IRequest::class) ->setFactory(Request::class); } - $response = $builder->getByType(IResponse::class) ?: 'httpResponse'; + $response = $builder->getByType(IResponse::class) ?? 'httpResponse'; if ($builder->hasDefinition($response)) { $builder->getDefinition($response) ->setType(IResponse::class) diff --git a/src/Module/NetteApplicationModule.php b/src/Module/NetteApplicationModule.php index d25184e..c950945 100644 --- a/src/Module/NetteApplicationModule.php +++ b/src/Module/NetteApplicationModule.php @@ -5,6 +5,7 @@ use Codeception\Lib\Framework; use Codeception\TestInterface; use Contributte\Codeception\Connector\NetteConnector; +use Nette\DI\Container; use Nette\Http\IRequest; use Nette\Http\IResponse; @@ -35,7 +36,7 @@ public function _before(TestInterface $test): void { $this->client = new NetteConnector(); $this->client->setContainerAccessor( - function () { + function (): Container { /** @var NetteDIModule $diModule */ $diModule = $this->getModule(NetteDIModule::class);