diff options
author | Rémy Coutable <remy@rymai.me> | 2017-08-14 16:39:44 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-08-14 16:39:44 +0000 |
commit | 3248911c08755b8c2885e88c65f3af33e6d1800c (patch) | |
tree | 8b65fd70fcae5e6b0bedbdeecce635335a1b5915 | |
parent | be22bf5c7382b388a06cbde01438ba38582994f7 (diff) | |
parent | 6e3ca79dedbe27f64d12dbf391d0823137dcc610 (diff) | |
download | gitlab-ce-3248911c08755b8c2885e88c65f3af33e6d1800c.tar.gz |
Merge branch '7-days-cycle-analytics' into 'master'
Add a `Last 7 days` option for Cycle Analytics view
Closes #36300
See merge request !13443
-rw-r--r-- | app/controllers/concerns/cycle_analytics_params.rb | 9 | ||||
-rw-r--r-- | app/views/projects/cycle_analytics/show.html.haml | 3 | ||||
-rw-r--r-- | changelogs/unreleased/seven-days-cycle-analytics.yml | 5 | ||||
-rw-r--r-- | spec/features/cycle_analytics_spec.rb | 38 |
4 files changed, 54 insertions, 1 deletions
diff --git a/app/controllers/concerns/cycle_analytics_params.rb b/app/controllers/concerns/cycle_analytics_params.rb index 52e06f4945a..1ab107168c0 100644 --- a/app/controllers/concerns/cycle_analytics_params.rb +++ b/app/controllers/concerns/cycle_analytics_params.rb @@ -6,6 +6,13 @@ module CycleAnalyticsParams end 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 diff --git a/app/views/projects/cycle_analytics/show.html.haml b/app/views/projects/cycle_analytics/show.html.haml index c704635ead3..3467e357c49 100644 --- a/app/views/projects/cycle_analytics/show.html.haml +++ b/app/views/projects/cycle_analytics/show.html.haml @@ -40,6 +40,9 @@ %i.fa.fa-chevron-down %ul.dropdown-menu.dropdown-menu-align-right %li + %a{ "href" => "#", "data-value" => "7" } + {{ n__('Last %d day', 'Last %d days', 7) }} + %li %a{ "href" => "#", "data-value" => "30" } {{ n__('Last %d day', 'Last %d days', 30) }} %li diff --git a/changelogs/unreleased/seven-days-cycle-analytics.yml b/changelogs/unreleased/seven-days-cycle-analytics.yml new file mode 100644 index 00000000000..ff660bdd603 --- /dev/null +++ b/changelogs/unreleased/seven-days-cycle-analytics.yml @@ -0,0 +1,5 @@ +--- +title: Add a `Last 7 days` option for Cycle Analytics view +merge_request: 13443 +author: Mehdi Lahmam (@mehlah) +type: added diff --git a/spec/features/cycle_analytics_spec.rb b/spec/features/cycle_analytics_spec.rb index 5c60cca10b9..bfe9dac3bd4 100644 --- a/spec/features/cycle_analytics_spec.rb +++ b/spec/features/cycle_analytics_spec.rb @@ -24,6 +24,12 @@ feature 'Cycle Analytics', js: true do expect(page).to have_content('Introducing Cycle Analytics') 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 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.") @@ -42,6 +48,12 @@ feature 'Cycle Analytics', js: true do visit project_cycle_analytics_path(project) 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 expect_issue_to_be_present @@ -63,6 +75,20 @@ feature 'Cycle Analytics', js: true do click_stage('Production') expect_issue_to_be_present 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 context "when my preferred language is Spanish" do @@ -109,6 +135,18 @@ feature 'Cycle Analytics', js: true do 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 expect(find('.stage-events')).to have_content(issue.title) expect(find('.stage-events')).to have_content(issue.author.name) |