Follow-up !16981: disable auto admin mode in specs and fix failing specs
In the context of MR !16981 (merged), we introduce a new admin mode that can be enabled by administrators of the platform. On login, by default admins are in normal user mode, and admin mode must be explicitly enabled by re-authenticating.
There's a significant number of specs that fail when admin mode is not enabled. Particularly, the ones that check functionality in the UI that depend on the user being an administrator, e.g. full management of pipelines on a project is enabled for admins.
In order to keep the size of !16981 (merged) manageable, admin mode is enabled by default on all specs by using the following snippet in spec_helper.rb
:
unless example.metadata[:do_not_mock_admin_mode]
allow_any_instance_of(Gitlab::Auth::CurrentUserMode).to receive(:admin_mode?).and_return(true)
end
This is not optimal, so this issue tracks disabling this flag and fixing the failing specs in a subsequent MR.
Current plan is to:
- Enable conditional mocking by spec directory in !28420 (merged)
- Break !27405 (closed) in chunks, removing directories from !28420 (merged) on each chunk, until all are migrated
List of migration MRs:
-
!28770 (merged) -
!30430 (merged) -
!45988 (merged) -
!47670 (merged) -
!48700 (merged) -
!50056 (merged) -
!50331 (merged)
/cc @ifarkas @reprazent @jeremy @bufferoverflow
The following discussion from gitlab-ce!31619 should be addressed:
-
@ifarkas started a discussion: (+2 comments) But I'm again in the situation that I would need to modify a lot of specs for them to pass, and this MR would be huge. I'm really not sure how to tackle that.
@dlouzan, I agree, we should limit the scope of this MR and try to keep it under managable size. What do you think of just enabling admin mode for those specs in this MR and fix them in follow-ups? If you create an issue and add a comment where you enabled it for this reason, it will be fairly easy to track down one by one.