summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/helpers/issuables_helper.rb46
-rw-r--r--spec/helpers/issuables_helper_spec.rb26
2 files changed, 49 insertions, 23 deletions
diff --git a/app/helpers/issuables_helper.rb b/app/helpers/issuables_helper.rb
index afe19f017d7..a4197d34db3 100644
--- a/app/helpers/issuables_helper.rb
+++ b/app/helpers/issuables_helper.rb
@@ -199,6 +199,29 @@ module IssuablesHelper
issuable_filter_params.any? { |k| params.key?(k) }
end
+ def issuable_app_data(project, issue)
+ data = {
+ endpoint: realtime_changes_namespace_project_issue_path(project.namespace, project, issue),
+ 'can-update' => can?(current_user, :update_issue, issue).to_s,
+ 'issuable-ref' => issue.to_reference || ''
+ }
+ updated_at_by = updated_at_by(issue)
+
+ data.merge(updated_at_by)
+ end
+
+ def updated_at_by(issuable)
+ return {} unless issuable.is_edited?
+
+ {
+ updated_at: issuable.updated_at.to_time.iso8601,
+ updated_by: {
+ name: issuable.last_edited_by.name,
+ path: user_path(issuable.last_edited_by)
+ }
+ }
+ end
+
private
def sidebar_gutter_collapsed?
@@ -273,27 +296,4 @@ module IssuablesHelper
container: (is_collapsed ? 'body' : nil)
}
end
-
- def issuable_app_data(project, issue)
- data = {
- endpoint: realtime_changes_namespace_project_issue_path(project.namespace, project, issue),
- 'can-update' => can?(current_user, :update_issue, issue).to_s,
- 'issuable-ref' => issue.to_reference || ''
- }
- updated_at_by = updated_at_by(issue)
-
- data.merge(updated_at_by)
- end
-
- def updated_at_by(issuable)
- return {} unless issuable.is_edited?
-
- {
- updated_at: issuable.updated_at.to_time.iso8601,
- updated_by: {
- name: issuable.last_edited_by.name,
- path: user_path(issuable.last_edited_by)
- }
- }
- end
end
diff --git a/spec/helpers/issuables_helper_spec.rb b/spec/helpers/issuables_helper_spec.rb
index e55e489b02f..b5dd0f21cbd 100644
--- a/spec/helpers/issuables_helper_spec.rb
+++ b/spec/helpers/issuables_helper_spec.rb
@@ -193,6 +193,32 @@ describe IssuablesHelper do
end
end
+ describe '#issuable_app_data' do
+ let(:user) { create(:user) }
+ let(:project) { create(:project) }
+ let(:issue) { create(:issue, project: project, last_edited_by: user, created_at: 3.days.ago, updated_at: 2.days.ago, last_edited_at: 2.days.ago) }
+
+ let(:issue_app_data) do
+ {
+ endpoint: realtime_changes_namespace_project_issue_path(project.namespace, project, issue),
+ 'can-update' => "true",
+ 'issuable-ref' => issue.to_reference || '',
+ updated_at: issue.updated_at.to_time.iso8601,
+ updated_by: {
+ name: user.name,
+ path: user_path(user)
+ }
+ }
+ end
+
+ before do
+ allow(helper).to receive(:current_user).and_return(nil)
+ allow(helper).to receive(:can?).with(nil, :update_issue, issue).and_return(true)
+ end
+
+ it { expect(helper.issuable_app_data(issue.project, issue)).to eq(issue_app_data) }
+ end
+
describe '#updated_at_by' do
let(:user) { create(:user) }
let(:unedited_issuable) { create(:issue) }