Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Throw exception when provideConfigFilePath is not overridden #6415

Closed
matthiasnoback opened this issue May 14, 2021 · 7 comments
Closed

Throw exception when provideConfigFilePath is not overridden #6415

matthiasnoback opened this issue May 14, 2021 · 7 comments
Labels

Comments

@matthiasnoback
Copy link
Contributor

When upgrading from Rector 0.8 to 0.11, you should no longer implement provideConfigFileInfo() in tests but instead return the config file path from provideConfigFilePath(). If you don't do this, the error you get will be hard to interpret and fix:

File path "" was not found while creating "RectorPrefix20210514\Symplify\SmartFileSystem\SmartFileInfo" object.
 /opt/project/vendor/rector/rector/vendor/symplify/smart-file-system/src/SmartFileInfo.php:31
 /opt/project/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php:58
 /opt/.phpstorm_helpers/codeception.php:51

The empty string comes from the default implementation in AbstractRectorTestCase, but instead of saying "// must be implementedand returning''` it should throw an exception (imo) because it will help the user find out what's wrong.

@matthiasnoback
Copy link
Contributor Author

(or mark the method as abstract?)

@sabbelasichon
Copy link
Contributor

I think there was a time where different options were possible like use this class or either this config file. But now as far as i can see this is the only option to configure which rules should be applied.

@sabbelasichon
Copy link
Contributor

The method is already required through the RectorTestInterface. So no need to mark it as abstract.

@matthiasnoback
Copy link
Contributor Author

The method is already required through the RectorTestInterface. So no need to mark it as abstract.

Ah, I didn't know. In that case I think it should not be implemented in AbstractRectorTestCase.

@sabbelasichon
Copy link
Contributor

Best Pull Request i ever had: https://github.com/rectorphp/rector-src/pull/32/files
Put both together, what´s the result ;-)

TomasVotruba pushed a commit to rectorphp/rector-src that referenced this issue May 14, 2021
* [TASK] Remove default method provideConfigFilePath

Relates: rectorphp/rector#6415

* [TASK] Implement method provideConfigFilePath
@sabbelasichon
Copy link
Contributor

This can be closed.

@samsonasik
Copy link
Member

@sabbelasichon I closed it, thank you.

TomasVotruba added a commit that referenced this issue Nov 12, 2024
rectorphp/rector-src@5baf487 Require-dev phpstan/phpstan-deprecation-rules to show list of deprecated (#6415)
carlos-granados added a commit to carlos-granados/rector that referenced this issue Nov 13, 2024
carlos-granados/rector-src@f7ea3db [PHP8.3] add new rectors for get_class()/get_parent_class() without arguments (rectorphp#6405)
carlos-granados/rector-src@1afc647 Rectify (rectorphp#6408)
carlos-granados/rector-src@afe7c46 [DeadCode] Skip nullable @ template on RemoveUselessReturnTagRector (rectorphp#6409)
carlos-granados/rector-src@293eb97 [Php81] Skip Doctrine Embeddable on ReadOnlyPropertyRector (rectorphp#6411)
carlos-granados/rector-src@1b1807b [Privatization] Skip with parameter on PrivatizeLocalGetterToPropertyRector (rectorphp#6412)
carlos-granados/rector-src@2c67908 Fix ClassDependencyManipulator to add dependency on right position (rectorphp#6413)
carlos-granados/rector-src@29e8932 [automated] Apply Coding Standard (rectorphp#6414)
carlos-granados/rector-src@3949fc2 Move instanceof PHPStan Type to ->is*() take 1 (rectorphp#6416)
carlos-granados/rector-src@0cac71a [CodeQuality] Add fixture test for skip nullable array from property with default value (rectorphp#6417)
carlos-granados/rector-src@d2db35e [Php80] Returns null on no change on ClassPropertyAssignToConstructorPromotionRector (rectorphp#6418)
carlos-granados/rector-src@06adce3 use ->isInteger()->yes() on ReturnTypeFromStrictNewArrayRector (rectorphp#6419)
carlos-granados/rector-src@bcfb598 Add ClassNameFromObjectTypeResolver to cover TypeWithClassName instance checks (rectorphp#6420)
carlos-granados/rector-src@84bb596 [StaticTypeMapper] Reduce instanceof TypeWithClassName usage via ClassNameFromObjectTypeResolver (rectorphp#6421)
carlos-granados/rector-src@26b8b54 [Naming] Reduce instanceof ObjectType on ExpectedNameResolver (take 5) (rectorphp#6423)
carlos-granados/rector-src@5baf487 Require-dev phpstan/phpstan-deprecation-rules to show list of deprecated (rectorphp#6415)
carlos-granados/rector-src@c23ba82 [deprecation] Remove deprecated PublicConstantVisibilityRector, cleanup deprecated SetListInterface (rectorphp#6424)
carlos-granados/rector-src@c2053c7 [deprecation] Deprecate AbstractScopeAwareRector in favor of single AbstractRector (rectorphp#6425)
carlos-granados/rector-src@2c5cd97 [deprecated] Remove deprecated AbstractTestCase (rectorphp#6426)
carlos-granados/rector-src@fb3c33a Merge commit '2c5cd97a3a98ab5af9efb846f6f78738e4a195a6'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants