diff options
Diffstat (limited to 'spec/helpers/timeboxes_helper_spec.rb')
-rw-r--r-- | spec/helpers/timeboxes_helper_spec.rb | 63 |
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 |