-
-
Notifications
You must be signed in to change notification settings - Fork 31.6k
Changing assert to become a class #58253
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
base: main
Are you sure you want to change the base?
Changing assert to become a class #58253
Conversation
Review requested:
|
f728b4c
to
132925f
Compare
I'm mildly concerned on the long term maintainability of this, as it essentially rewrites the module - backporting might lead to more churn than needed. You might get less churn by using the "old school" pattern: function Assert () {
}
Assert.prototype.notEqual = function () {} With this pattern, indentation would not change and this PR might be easier to review.
Can you clarify the need for this? Apart from that, this would need a CITGM check to verify it doesn't break end users in any way. |
Hey @miguelmarcondesf, thanks for the contribution 🚀 My 2 cents on this: while I understand the reasons behind this refactor, if I’m not mistaken, I don’t see any options actually being used in the class. So I’m wondering what the intended usage is for the new options we plan to introduce. The reason I’m asking is to provide a better context and justify any potential cons of rewriting the module (e.g., portability to other versions), while also providing an overview of what’s expected to be added. |
Hey @pmarchini, thanks for your thoughts!
I decided to open it in draft so I could receive more guidance on this, the PR already had a lot of modifications, and I wanted more perspectives so we could start this discussion. |
Changing assert to become a class
This PR refactors
assert
from a method to a dedicated class. This change is motivated by the need for greater flexibility and configurability in assertion behavior.By turning
assert
into a class, we will be able to pass options that customize its behavior, such as doing specific checks, how the stack trace will look like, etc.Checklist
assert
into a class structure.assert
usages.cc @BridgeAR