fixed issue occurring for progress bars without a value

This commit is contained in:
Hauke Klement
2015-03-11 10:14:39 +01:00
parent c811e1a78f
commit 67c7e1427e
3 changed files with 37 additions and 10 deletions

View File

@ -33,8 +33,8 @@ module ApplicationHelper
end end
def progress_bar(value) def progress_bar(value)
content_tag(:div, class: 'progress') do content_tag(:div, class: value ? 'progress' : 'disabled progress') do
content_tag(:div, "#{value}%", :'aria-valuemax' => 100, :'aria-valuemin' => 0, :'aria-valuenow' => value, class: 'progress-bar progress-bar-striped', role: 'progressbar', style: "width: #{[value, 100].min}%;") content_tag(:div, value ? "#{value}%" : '', :'aria-valuemax' => 100, :'aria-valuemin' => 0, :'aria-valuenow' => value, class: 'progress-bar progress-bar-striped', role: 'progressbar', style: "width: #{[value || 0, 100].min}%;")
end end
end end

View File

@ -182,6 +182,14 @@ describe ExercisesController do
expect_template(:show) expect_template(:show)
end end
describe 'GET #statistics' do
before(:each) { get :statistics, id: exercise.id }
expect_assigns(exercise: :exercise)
expect_status(200)
expect_template(:statistics)
end
describe 'POST #submit' do describe 'POST #submit' do
let(:output) { {} } let(:output) { {} }
let(:request) { post :submit, format: :json, id: exercise.id, submission: {cause: 'submit', exercise_id: exercise.id} } let(:request) { post :submit, format: :json, id: exercise.id, submission: {cause: 'submit', exercise_id: exercise.id} }

View File

@ -43,6 +43,8 @@ describe ApplicationHelper do
describe '#progress_bar' do describe '#progress_bar' do
let(:html) { progress_bar(value) } let(:html) { progress_bar(value) }
context 'with a value' do
let(:value) { 42 } let(:value) { 42 }
it "builds nested 'div' tags" do it "builds nested 'div' tags" do
@ -58,6 +60,23 @@ describe ApplicationHelper do
end end
end end
context 'without a value' do
let(:value) { nil }
it 'does not raise an error' do
expect { html }.not_to raise_error
end
it 'assigns the correct classes' do
expect(html).to have_css('div.disabled.progress div.progress-bar')
end
it 'uses the correct width' do
expect(html).to have_css("div.progress-bar[style='width: 0%;']")
end
end
end
describe '#row' do describe '#row' do
let(:html) { row(label: 'foo', value: 42) } let(:html) { row(label: 'foo', value: 42) }