Commit 058692fa authored by Peter Leitzen's avatar Peter Leitzen

Merge branch '220148-fix-vsa-issue-summary-title' into 'master'

Pass int when getting I18n VSA stage summary title

Closes #220148

See merge request gitlab-org/gitlab!33717
parents f030db7c 24b23ad8
---
title: Fix Value Stream Analytics summary when using non-english locale
merge_request: 33717
author:
type: fixed
......@@ -9,7 +9,7 @@ module Gitlab
include Gitlab::CycleAnalytics::GroupProjectsProvider
def title
n_('Deploy', 'Deploys', value)
n_('Deploy', 'Deploys', value.to_i)
end
def value
......
......@@ -15,7 +15,7 @@ module Gitlab
end
def title
n_('New Issue', 'New Issues', value)
n_('New Issue', 'New Issues', value.to_i)
end
def value
......
......@@ -23,6 +23,12 @@ RSpec.describe Gitlab::Analytics::CycleAnalytics::Summary::Group::StageSummary d
expect(subject.first[:value]).to eq('2')
end
it 'returns the localized title' do
Gitlab::I18n.with_locale(:ru) do
expect(subject.first[:title]).to eq(n_('New Issue', 'New Issues', 2))
end
end
context 'with subgroups' do
before do
Timecop.freeze(5.days.from_now) { create(:issue, project: create(:project, namespace: create(:group, parent: group))) }
......@@ -80,6 +86,12 @@ RSpec.describe Gitlab::Analytics::CycleAnalytics::Summary::Group::StageSummary d
expect(subject.second[:value]).to eq('2')
end
it 'returns the localized title' do
Gitlab::I18n.with_locale(:ru) do
expect(subject.second[:title]).to eq(n_('Deploy', 'Deploys', 2))
end
end
context 'with subgroups' do
before do
Timecop.freeze(5.days.from_now) do
......
......@@ -5,7 +5,7 @@ module Gitlab
module Summary
class Commit < Base
def title
n_('Commit', 'Commits', value)
n_('Commit', 'Commits', value.to_i)
end
def value
......
......@@ -5,7 +5,7 @@ module Gitlab
module Summary
class Deploy < Base
def title
n_('Deploy', 'Deploys', value)
n_('Deploy', 'Deploys', value.to_i)
end
def value
......
......@@ -12,7 +12,7 @@ module Gitlab
end
def title
n_('New Issue', 'New Issues', value)
n_('New Issue', 'New Issues', value.to_i)
end
def value
......
......@@ -15,6 +15,14 @@ module Gitlab
end
class None < self
def raw_value
0
end
def to_i
raw_value
end
def to_s
'-'
end
......@@ -28,6 +36,10 @@ module Gitlab
def to_s
value.zero? ? '0' : value.to_s
end
def to_i
raw_value
end
end
class PrettyNumeric < Numeric
......
......@@ -14,19 +14,29 @@ describe Gitlab::CycleAnalytics::StageSummary do
let(:stage_summary) { described_class.new(project, options).data }
describe "#new_issues" do
subject { stage_summary.first[:value] }
subject { stage_summary.first }
it "finds the number of issues created after the 'from date'" do
Timecop.freeze(5.days.ago) { create(:issue, project: project) }
Timecop.freeze(5.days.from_now) { create(:issue, project: project) }
context 'when from date is given' do
before do
Timecop.freeze(5.days.ago) { create(:issue, project: project) }
Timecop.freeze(5.days.from_now) { create(:issue, project: project) }
end
expect(subject).to eq('1')
it "finds the number of issues created after the 'from date'" do
expect(subject[:value]).to eq('1')
end
it 'returns the localized title' do
Gitlab::I18n.with_locale(:ru) do
expect(subject[:title]).to eq(n_('New Issue', 'New Issues', 1))
end
end
end
it "doesn't find issues from other projects" do
Timecop.freeze(5.days.from_now) { create(:issue, project: create(:project)) }
expect(subject).to eq('-')
expect(subject[:value]).to eq('-')
end
context 'when `to` parameter is given' do
......@@ -38,38 +48,48 @@ describe Gitlab::CycleAnalytics::StageSummary do
it "doesn't find any record" do
options[:to] = Time.now
expect(subject).to eq('-')
expect(subject[:value]).to eq('-')
end
it "finds records created between `from` and `to` range" do
options[:from] = 10.days.ago
options[:to] = 10.days.from_now
expect(subject).to eq('2')
expect(subject[:value]).to eq('2')
end
end
end
describe "#commits" do
subject { stage_summary.second[:value] }
subject { stage_summary.second }
context 'when from date is given' do
before do
Timecop.freeze(5.days.ago) { create_commit("Test message", project, user, 'master') }
Timecop.freeze(5.days.from_now) { create_commit("Test message", project, user, 'master') }
end
it "finds the number of commits created after the 'from date'" do
Timecop.freeze(5.days.ago) { create_commit("Test message", project, user, 'master') }
Timecop.freeze(5.days.from_now) { create_commit("Test message", project, user, 'master') }
it "finds the number of commits created after the 'from date'" do
expect(subject[:value]).to eq('1')
end
expect(subject).to eq('1')
it 'returns the localized title' do
Gitlab::I18n.with_locale(:ru) do
expect(subject[:title]).to eq(n_('Commit', 'Commits', 1))
end
end
end
it "doesn't find commits from other projects" do
Timecop.freeze(5.days.from_now) { create_commit("Test message", create(:project, :repository), user, 'master') }
expect(subject).to eq('-')
expect(subject[:value]).to eq('-')
end
it "finds a large (> 100) number of commits if present" do
Timecop.freeze(5.days.from_now) { create_commit("Test message", project, user, 'master', count: 100) }
expect(subject).to eq('100')
expect(subject[:value]).to eq('100')
end
context 'when `to` parameter is given' do
......@@ -81,14 +101,14 @@ describe Gitlab::CycleAnalytics::StageSummary do
it "doesn't find any record" do
options[:to] = Time.now
expect(subject).to eq('-')
expect(subject[:value]).to eq('-')
end
it "finds records created between `from` and `to` range" do
options[:from] = 10.days.ago
options[:to] = 10.days.from_now
expect(subject).to eq('2')
expect(subject[:value]).to eq('2')
end
end
......@@ -112,13 +132,23 @@ describe Gitlab::CycleAnalytics::StageSummary do
end
describe "#deploys" do
subject { stage_summary.third[:value] }
subject { stage_summary.third }
it "finds the number of deploys made created after the 'from date'" do
Timecop.freeze(5.days.ago) { create(:deployment, :success, project: project) }
Timecop.freeze(5.days.from_now) { create(:deployment, :success, project: project) }
context 'when from date is given' do
before do
Timecop.freeze(5.days.ago) { create(:deployment, :success, project: project) }
Timecop.freeze(5.days.from_now) { create(:deployment, :success, project: project) }
end
it "finds the number of deploys made created after the 'from date'" do
expect(subject[:value]).to eq('1')
end
expect(subject).to eq('1')
it 'returns the localized title' do
Gitlab::I18n.with_locale(:ru) do
expect(subject[:title]).to eq(n_('Deploy', 'Deploys', 1))
end
end
end
it "doesn't find commits from other projects" do
......@@ -126,7 +156,7 @@ describe Gitlab::CycleAnalytics::StageSummary do
create(:deployment, :success, project: create(:project, :repository))
end
expect(subject).to eq('-')
expect(subject[:value]).to eq('-')
end
context 'when `to` parameter is given' do
......@@ -138,14 +168,14 @@ describe Gitlab::CycleAnalytics::StageSummary do
it "doesn't find any record" do
options[:to] = Time.now
expect(subject).to eq('-')
expect(subject[:value]).to eq('-')
end
it "finds records created between `from` and `to` range" do
options[:from] = 10.days.ago
options[:to] = 10.days.from_now
expect(subject).to eq('2')
expect(subject[:value]).to eq('2')
end
end
end
......
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