Add QA/FabricateUsage cop
What does this MR do and why?
Add QA/FabricateUsage cop
When fabricate_via_api! is called on given resources, raise an issue and recommend using the resource factory
Ref: gitlab-org/quality/quality-engineering/team-tasks#1987 (closed)
Screenshots or screen recordings
Given a spec -
let(:project) do
Resource::Project.fabricate_via_api! do |project|
project.name = 'test'
end
end
let(:user) do
Resource::User.fabricate_via_api!
end
let(:access_token) do
Resource::ProjectAccessToken.fabricate_via_api!
end
Inspecting 1 file
C
Offenses:
qa/qa/specs/features/browser_ui/1_manage/login/log_in_with_2fa_spec.rb:12:9: C: QA/FabricateUsage: Prefer create(:project[, ...]) here.
Resource::Project.fabricate_via_api! do |project|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
qa/qa/specs/features/browser_ui/1_manage/login/log_in_with_2fa_spec.rb:18:9: C: QA/FabricateUsage: Prefer create(:user[, ...]) here.
Resource::User.fabricate_via_api!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
qa/qa/specs/features/browser_ui/1_manage/login/log_in_with_2fa_spec.rb:22:9: C: QA/FabricateUsage: Prefer create(:project_access_token[, ...]) here.
Resource::ProjectAccessToken.fabricate_via_api!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1 file inspected, 3 offenses detected
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Dan Davison