Commit 3248911c authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '7-days-cycle-analytics' into 'master'

Add a `Last 7 days` option for Cycle Analytics view

Closes #36300

See merge request !13443
parents be22bf5c 6e3ca79d
...@@ -6,6 +6,13 @@ module CycleAnalyticsParams ...@@ -6,6 +6,13 @@ module CycleAnalyticsParams
end end
def start_date(params) def start_date(params)
params[:start_date] == '30' ? 30.days.ago : 90.days.ago case params[:start_date]
when '7'
7.days.ago
when '30'
30.days.ago
else
90.days.ago
end
end end
end end
...@@ -39,6 +39,9 @@ ...@@ -39,6 +39,9 @@
%span.dropdown-label {{ n__('Last %d day', 'Last %d days', 30) }} %span.dropdown-label {{ n__('Last %d day', 'Last %d days', 30) }}
%i.fa.fa-chevron-down %i.fa.fa-chevron-down
%ul.dropdown-menu.dropdown-menu-align-right %ul.dropdown-menu.dropdown-menu-align-right
%li
%a{ "href" => "#", "data-value" => "7" }
{{ n__('Last %d day', 'Last %d days', 7) }}
%li %li
%a{ "href" => "#", "data-value" => "30" } %a{ "href" => "#", "data-value" => "30" }
{{ n__('Last %d day', 'Last %d days', 30) }} {{ n__('Last %d day', 'Last %d days', 30) }}
......
---
title: Add a `Last 7 days` option for Cycle Analytics view
merge_request: 13443
author: Mehdi Lahmam (@mehlah)
type: added
...@@ -24,6 +24,12 @@ feature 'Cycle Analytics', js: true do ...@@ -24,6 +24,12 @@ feature 'Cycle Analytics', js: true do
expect(page).to have_content('Introducing Cycle Analytics') expect(page).to have_content('Introducing Cycle Analytics')
end end
it 'shows pipeline summary' do
expect(new_issues_counter).to have_content('-')
expect(commits_counter).to have_content('-')
expect(deploys_counter).to have_content('-')
end
it 'shows active stage with empty message' do it 'shows active stage with empty message' do
expect(page).to have_selector('.stage-nav-item.active', text: 'Issue') expect(page).to have_selector('.stage-nav-item.active', text: 'Issue')
expect(page).to have_content("We don't have enough data to show this stage.") expect(page).to have_content("We don't have enough data to show this stage.")
...@@ -42,6 +48,12 @@ feature 'Cycle Analytics', js: true do ...@@ -42,6 +48,12 @@ feature 'Cycle Analytics', js: true do
visit project_cycle_analytics_path(project) visit project_cycle_analytics_path(project)
end end
it 'shows pipeline summary' do
expect(new_issues_counter).to have_content('1')
expect(commits_counter).to have_content('2')
expect(deploys_counter).to have_content('1')
end
it 'shows data on each stage' do it 'shows data on each stage' do
expect_issue_to_be_present expect_issue_to_be_present
...@@ -63,6 +75,20 @@ feature 'Cycle Analytics', js: true do ...@@ -63,6 +75,20 @@ feature 'Cycle Analytics', js: true do
click_stage('Production') click_stage('Production')
expect_issue_to_be_present expect_issue_to_be_present
end end
context "when I change the time period observed" do
before do
_two_weeks_old_issue = create(:issue, project: project, created_at: 2.weeks.ago)
click_button('Last 30 days')
click_link('Last 7 days')
wait_for_requests
end
it 'shows only relevant data' do
expect(new_issues_counter).to have_content('1')
end
end
end end
context "when my preferred language is Spanish" do context "when my preferred language is Spanish" do
...@@ -109,6 +135,18 @@ feature 'Cycle Analytics', js: true do ...@@ -109,6 +135,18 @@ feature 'Cycle Analytics', js: true do
end end
end end
def new_issues_counter
find(:xpath, "//p[contains(text(),'New Issue')]/preceding-sibling::h3")
end
def commits_counter
find(:xpath, "//p[contains(text(),'Commits')]/preceding-sibling::h3")
end
def deploys_counter
find(:xpath, "//p[contains(text(),'Deploy')]/preceding-sibling::h3")
end
def expect_issue_to_be_present def expect_issue_to_be_present
expect(find('.stage-events')).to have_content(issue.title) expect(find('.stage-events')).to have_content(issue.title)
expect(find('.stage-events')).to have_content(issue.author.name) expect(find('.stage-events')).to have_content(issue.author.name)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment