diff options
Diffstat (limited to 'qa/qa/resource/issue.rb')
-rw-r--r-- | qa/qa/resource/issue.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/qa/qa/resource/issue.rb b/qa/qa/resource/issue.rb index 9214d4eff4a..344f177932f 100644 --- a/qa/qa/resource/issue.rb +++ b/qa/qa/resource/issue.rb @@ -9,6 +9,7 @@ module QA Project.fabricate! do |resource| resource.name = 'project-for-issues' resource.description = 'project for adding issues' + resource.api_client = api_client end end @@ -93,6 +94,52 @@ module QA attempts: attempts ) end + + # Object comparison + # + # @param [QA::Resource::Issue] other + # @return [Boolean] + def ==(other) + other.is_a?(Issue) && comparable_issue == other.comparable_issue + end + + # Override inspect for a better rspec failure diff output + # + # @return [String] + def inspect + JSON.pretty_generate(comparable_issue) + end + + protected + + # Return subset of fields for comparing issues + # + # @return [Hash] + def comparable_issue + reload! if api_response.nil? + + api_resource.slice( + :state, + :description, + :type, + :title, + :labels, + :milestone, + :upvotes, + :downvotes, + :merge_requests_count, + :user_notes_count, + :due_date, + :has_tasks, + :task_status, + :confidential, + :discussion_locked, + :issue_type, + :task_completion_status, + :closed_at, + :created_at + ) + end end end end |