-
-
Notifications
You must be signed in to change notification settings - Fork 395
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
Raise an error when calling custom matcher without using .and
#1426
Comments
Thanks for reporting! It’s certainly accidental behaviour. |
Hello there! I hope you are enjoying your weekend Surely, I had the same idea I will play around with access levels to see if I can somehow do that, otherwise if it is too complicated then I believe we can raise it as a warning instead of error (will also create a PR for that) P/S (12/8/2023): I believe I have the solution, I will open a PR soon. |
Hello there @pirj 👋 I hope you are doing well, I have opened a PR for this issue. Thank you! |
The method should not even be available on the matcher for what its worth, e.g |
Hey folks, I hope you are all well! I have left a comment here #1428 (comment), could you guys have a look ? Thank you |
Subject of the issue
Hi there folks 👋 ,
First of all, thank you for this great gem! I created this issue here just to offer a small idea, I encountered a small scenario when using
custom matchers
.Let's say we have this custom matcher
As you can see, it is easy to make mistake as we sometime might forget to add
.and
betweencreate_some_model
and this could create false-positive test result as it will only runcreate_some_model(Model2)
. I understand that this is more human error but I would love to prevent it.My idea is in
RSpec::Matchers::DSL::Matcher
, we also defineSo calling
create_some_model
twice will resulting in error like that. There is one catch with this approach is you cannot call the samecreate_some_model
inside the matcher itself but IMHO, I don't think it is a good idea to do suchI can create a PR to apply this idea, please let me know what do you guys think. Thank you for reading!
P/S:
There is 1 more approach besides that is to get rid of the defined custom matcher method from
RSpec::Matchers::DSL::Matcher
but if we do that we also have to get rid of themethod_missing
as well which I don't think it is a good idea.Your environment
The text was updated successfully, but these errors were encountered: