From 93f2d6ee69837e135dea4973c80b7197678cbc89 Mon Sep 17 00:00:00 2001 From: Robert May <rmay@gitlab.com> Date: Wed, 3 Feb 2021 13:03:00 +0000 Subject: [PATCH] Lower allocations in _collapsed partial --- app/helpers/diff_helper.rb | 11 ++++++++++ .../diffs/viewers/_collapsed.html.haml | 4 +--- spec/helpers/diff_helper_spec.rb | 20 +++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb index 4d748ac5bf8..49c49bb350d 100644 --- a/app/helpers/diff_helper.rb +++ b/app/helpers/diff_helper.rb @@ -203,6 +203,17 @@ module DiffHelper set_secure_cookie(:diff_view, params.delete(:view), type: CookiesHelper::COOKIE_TYPE_PERMANENT) if params[:view].present? end + def collapsed_diff_url(diff_file) + url_for( + safe_params.merge( + action: :diff_for_path, + old_path: diff_file.old_path, + new_path: diff_file.new_path, + file_identifier: diff_file.file_identifier + ) + ) + end + private def diff_btn(title, name, selected) diff --git a/app/views/projects/diffs/viewers/_collapsed.html.haml b/app/views/projects/diffs/viewers/_collapsed.html.haml index 94dcda38bd6..02f499144c0 100644 --- a/app/views/projects/diffs/viewers/_collapsed.html.haml +++ b/app/views/projects/diffs/viewers/_collapsed.html.haml @@ -1,5 +1,3 @@ -- diff_file = viewer.diff_file -- url = url_for(safe_params.merge(action: :diff_for_path, old_path: diff_file.old_path, new_path: diff_file.new_path, file_identifier: diff_file.file_identifier)) -.nothing-here-block.diff-collapsed{ data: { diff_for_path: url } } +.nothing-here-block.diff-collapsed{ data: { diff_for_path: collapsed_diff_url(viewer.diff_file) } } = _("This diff is collapsed.") %button.click-to-expand.btn.btn-link= _("Click to expand it.") diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb index d04d97e9e6b..4bc12aef755 100644 --- a/spec/helpers/diff_helper_spec.rb +++ b/spec/helpers/diff_helper_spec.rb @@ -358,4 +358,24 @@ RSpec.describe DiffHelper do expect(diff_file_path_text(diff_file, max: 10)).to eq("...open.rb") end end + + describe "#collapsed_diff_url" do + let(:params) do + { + controller: "projects/commit", + action: "show", + namespace_id: "foo", + project_id: "bar", + id: commit.sha + } + end + + subject { helper.collapsed_diff_url(diff_file) } + + it "returns a valid URL" do + allow(helper).to receive(:safe_params).and_return(params) + + expect(subject).to match(/foo\/bar\/-\/commit\/#{commit.sha}\/diff_for_path/) + end + end end -- 2.30.9