Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/presenters/gitlab/blame_presenter_spec.rb')
-rw-r--r--spec/presenters/gitlab/blame_presenter_spec.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/presenters/gitlab/blame_presenter_spec.rb b/spec/presenters/gitlab/blame_presenter_spec.rb
new file mode 100644
index 00000000000..d2a173b557c
--- /dev/null
+++ b/spec/presenters/gitlab/blame_presenter_spec.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe Gitlab::BlamePresenter do
+ let(:project) { create(:project, :repository) }
+ let(:path) { 'files/ruby/popen.rb' }
+ let(:commit) { project.commit('master') }
+ let(:blob) { project.repository.blob_at(commit.id, path) }
+ let(:blame) { Gitlab::Blame.new(blob, commit) }
+
+ subject { described_class.new(blame, project: project, path: path) }
+
+ it 'precalculates necessary data on init' do
+ expect_any_instance_of(described_class)
+ .to receive(:precalculate_data_by_commit!)
+ .and_call_original
+
+ subject
+ end
+
+ describe '#groups' do
+ it 'delegates #groups call to the blame' do
+ expect(blame).to receive(:groups).and_call_original
+
+ subject.groups
+ end
+ end
+
+ describe '#commit_data' do
+ it 'has the data necessary to render the view' do
+ commit = blame.groups.first[:commit]
+ data = subject.commit_data(commit)
+
+ aggregate_failures do
+ expect(data.author_avatar.to_s).to include('src="https://www.gravatar.com/')
+ expect(data.age_map_class).to include('blame-commit-age-')
+ expect(data.commit_link.to_s).to include '913c66a37b4a45b9769037c55c2d238bd0942d2e">Files, encoding and much more</a>'
+ expect(data.commit_author_link.to_s).to include('<a class="commit-author-link" href=')
+ expect(data.project_blame_link.to_s).to include('<a title="View blame prior to this change"')
+ expect(data.time_ago_tooltip.to_s).to include('data-container="body">Feb 27, 2014</time>')
+ end
+ end
+ end
+end