Fix #47379 - Project visibility tooltip
What does this MR do?
Modifies the is_a?
behaviour of Presenters so that they may also be compared against the classes they're presenting.
The issue is that a ProjectPresenter
is being checked in a case
statement, where Project
is expected. By modifying is_a?
to also return true
if some_project_presenter.is_a? Project
, we're also ensuring that Project === some_project_presenter
and, finally, that throwing a project presenter into a case statement will evaluate true
when compared against a Project
.
This is a very risky MR, and I totally understand if you choose to reject it :-). In a world where we use case comparisons against presenters, though, it means we don't have to worry about whether an actual record or its presenter is being used. Presenters are just wrappers, after all.
Are there points in the code the reviewer needs to double check?
Yeah, all of it. It's a very weird fix.
Why was this MR needed?
Projects' visibility tooltips weren't showing up.
Screenshots (if relevant)
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
API support added -
Tests added for this feature/bug - Conform by the code review guidelines
-
Has been reviewed by a UX Designer -
Has been reviewed by a Frontend maintainer -
Has been reviewed by a Backend maintainer -
Has been reviewed by a Database specialist
-
-
Conform by the merge request performance guides -
Conform by the style guides -
Conform by the database guides -
If you have multiple commits, please combine them into a few logically organized commits by squashing them -
Internationalization required/considered -
End-to-end tests pass ( package-and-qa
manual pipeline job)