debian-mirror-gitlab/spec/helpers/blame_helper_spec.rb

81 lines
2.4 KiB
Ruby
Raw Normal View History

2019-12-21 20:55:43 +05:30
# frozen_string_literal: true
2017-09-10 17:25:29 +05:30
require 'spec_helper'
2023-07-09 08:55:56 +05:30
RSpec.describe BlameHelper, feature_category: :source_code_management do
2017-09-10 17:25:29 +05:30
describe '#get_age_map_start_date' do
let(:dates) do
[Time.zone.local(2014, 3, 17, 0, 0, 0),
Time.zone.local(2011, 11, 2, 0, 0, 0),
Time.zone.local(2015, 7, 9, 0, 0, 0),
Time.zone.local(2013, 2, 24, 0, 0, 0),
Time.zone.local(2010, 9, 22, 0, 0, 0)]
end
2020-10-24 23:57:45 +05:30
2017-09-10 17:25:29 +05:30
let(:blame_groups) do
[
{ commit: double(committed_date: dates[0]) },
{ commit: double(committed_date: dates[1]) },
{ commit: double(committed_date: dates[2]) }
]
end
it 'returns the earliest date from a blame group' do
project = double(created_at: dates[3])
duration = helper.age_map_duration(blame_groups, project)
expect(duration[:started_days_ago]).to eq((duration[:now] - dates[1]).to_i / 1.day)
end
it 'returns the earliest date from a project' do
project = double(created_at: dates[4])
duration = helper.age_map_duration(blame_groups, project)
expect(duration[:started_days_ago]).to eq((duration[:now] - dates[4]).to_i / 1.day)
end
end
describe '#age_map_class' do
2018-03-17 18:26:18 +05:30
let(:date) { Time.zone.local(2014, 3, 17, 0, 0, 0) }
let(:blame_groups) { [{ commit: double(committed_date: date) }] }
2017-09-10 17:25:29 +05:30
let(:duration) do
2018-03-17 18:26:18 +05:30
project = double(created_at: date)
2017-09-10 17:25:29 +05:30
helper.age_map_duration(blame_groups, project)
end
it 'returns blame-commit-age-9 when oldest' do
2018-03-17 18:26:18 +05:30
expect(helper.age_map_class(date, duration)).to eq 'blame-commit-age-9'
2017-09-10 17:25:29 +05:30
end
it 'returns blame-commit-age-0 class when newest' do
expect(helper.age_map_class(duration[:now], duration)).to eq 'blame-commit-age-0'
end
2018-03-17 18:26:18 +05:30
context 'when called on the same day as project creation' do
let(:same_day_duration) do
project = double(created_at: now)
helper.age_map_duration(today_blame_groups, project)
end
2020-10-24 23:57:45 +05:30
2018-03-17 18:26:18 +05:30
let(:today_blame_groups) { [{ commit: double(committed_date: now) }] }
let(:now) { Time.zone.now }
it 'returns blame-commit-age-0 class' do
expect(helper.age_map_class(duration[:now], same_day_duration)).to eq 'blame-commit-age-0'
end
end
2017-09-10 17:25:29 +05:30
end
2023-07-09 08:55:56 +05:30
describe '#entire_blame_path' do
subject { helper.entire_blame_path(id, project) }
let_it_be(:project) { build_stubbed(:project) }
let(:id) { 'main/README.md' }
it { is_expected.to eq "/#{project.full_path}/-/blame/#{id}/streaming" }
end
2017-09-10 17:25:29 +05:30
end