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/helpers/timeboxes_helper_spec.rb')
-rw-r--r--spec/helpers/timeboxes_helper_spec.rb63
1 files changed, 51 insertions, 12 deletions
diff --git a/spec/helpers/timeboxes_helper_spec.rb b/spec/helpers/timeboxes_helper_spec.rb
index f9fb40a616b..f1f8683825e 100644
--- a/spec/helpers/timeboxes_helper_spec.rb
+++ b/spec/helpers/timeboxes_helper_spec.rb
@@ -2,8 +2,16 @@
require 'spec_helper'
-RSpec.describe TimeboxesHelper do
- describe "#timebox_date_range" do
+RSpec.describe TimeboxesHelper, feature_category: :team_planning do
+ using RSpec::Parameterized::TableSyntax
+
+ let_it_be(:milestone_expired) { build(:milestone, due_date: Date.today.prev_month) }
+ let_it_be(:milestone_closed) { build(:milestone, :closed) }
+ let_it_be(:milestone_upcoming) { build(:milestone, start_date: Date.today.next_month) }
+ let_it_be(:milestone_open) { build(:milestone) }
+ let_it_be(:milestone_closed_and_expired) { build(:milestone, :closed, due_date: Date.today.prev_month) }
+
+ describe '#timebox_date_range' do
let(:yesterday) { Date.yesterday }
let(:tomorrow) { yesterday + 2 }
let(:format) { '%b %-d, %Y' }
@@ -24,11 +32,11 @@ RSpec.describe TimeboxesHelper do
end
end
- describe "#group_milestone_route" do
+ describe '#group_milestone_route' do
let(:group) { build_stubbed(:group) }
- let(:subgroup) { build_stubbed(:group, parent: group, name: "Test Subgrp") }
+ let(:subgroup) { build_stubbed(:group, parent: group, name: 'Test Subgrp') }
- context "when in subgroup" do
+ context 'when in subgroup' do
let(:milestone) { build_stubbed(:group_milestone, group: subgroup) }
it 'generates correct url despite assigned @group' do
@@ -39,22 +47,53 @@ RSpec.describe TimeboxesHelper do
end
end
- describe "#recent_releases_with_counts" do
- let_it_be(:milestone) { create(:milestone) }
- let_it_be(:project) { milestone.project }
+ describe '#recent_releases_with_counts' do
+ let_it_be(:project) { milestone_open.project }
let_it_be(:user) { create(:user) }
- subject { helper.recent_releases_with_counts(milestone, user) }
+ subject { helper.recent_releases_with_counts(milestone_open, user) }
before do
project.add_developer(user)
end
- it "returns releases with counts" do
- _old_releases = create_list(:release, 2, project: project, milestones: [milestone])
- recent_public_releases = create_list(:release, 3, project: project, milestones: [milestone], released_at: '2022-01-01T18:00:00Z')
+ it 'returns releases with counts' do
+ _old_releases = create_list(:release, 2, project: project, milestones: [milestone_open])
+ recent_public_releases = create_list(:release, 3, project: project, milestones: [milestone_open], released_at: '2022-01-01T18:00:00Z')
is_expected.to match([match_array(recent_public_releases), 5, 2])
end
end
+
+ describe '#milestone_status_string' do
+ where(:milestone, :status) do
+ lazy { milestone_expired } | 'Expired'
+ lazy { milestone_closed } | 'Closed'
+ lazy { milestone_closed_and_expired } | 'Closed'
+ lazy { milestone_upcoming } | 'Upcoming'
+ lazy { milestone_open } | 'Open'
+ end
+
+ with_them do
+ it 'returns status string' do
+ expect(helper.milestone_status_string(milestone)).to eq(status)
+ end
+ end
+ end
+
+ describe '#milestone_badge_variant' do
+ where(:milestone, :variant) do
+ lazy { milestone_expired } | :warning
+ lazy { milestone_closed } | :danger
+ lazy { milestone_closed_and_expired } | :danger
+ lazy { milestone_upcoming } | :neutral
+ lazy { milestone_open } | :success
+ end
+
+ with_them do
+ it 'returns badge variant' do
+ expect(helper.milestone_badge_variant(milestone)).to eq(variant)
+ end
+ end
+ end
end