summaryrefslogtreecommitdiff
path: root/qa/qa/resource/issue.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/resource/issue.rb')
-rw-r--r--qa/qa/resource/issue.rb47
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