From 67c7e1427ed9f7b5a9826e1d301c494260cb7cfc Mon Sep 17 00:00:00 2001 From: Hauke Klement Date: Wed, 11 Mar 2015 10:14:39 +0100 Subject: [PATCH] fixed issue occurring for progress bars without a value --- app/helpers/application_helper.rb | 4 +-- spec/controllers/exercises_controller_spec.rb | 8 +++++ spec/helpers/application_helper_spec.rb | 35 ++++++++++++++----- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3a31fadd..46be9023 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -33,8 +33,8 @@ module ApplicationHelper end def progress_bar(value) - content_tag(:div, class: '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, class: value ? 'progress' : 'disabled progress') do + 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 diff --git a/spec/controllers/exercises_controller_spec.rb b/spec/controllers/exercises_controller_spec.rb index d38aac2a..563c1bed 100644 --- a/spec/controllers/exercises_controller_spec.rb +++ b/spec/controllers/exercises_controller_spec.rb @@ -182,6 +182,14 @@ describe ExercisesController do expect_template(:show) 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 let(:output) { {} } let(:request) { post :submit, format: :json, id: exercise.id, submission: {cause: 'submit', exercise_id: exercise.id} } diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index e117b2c5..c477105d 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -43,18 +43,37 @@ describe ApplicationHelper do describe '#progress_bar' do let(:html) { progress_bar(value) } - let(:value) { 42 } - it "builds nested 'div' tags" do - expect(html).to have_css('div.progress div.progress-bar') + context 'with a value' do + let(:value) { 42 } + + it "builds nested 'div' tags" do + expect(html).to have_css('div.progress div.progress-bar') + end + + it 'assigns the correct text' do + expect(html).to have_text("#{value}%") + end + + it 'uses the correct width' do + expect(html).to have_css("div.progress-bar[style='width: 42%;']") + end end - it 'assigns the correct text' do - expect(html).to have_text("#{value}%") - end + context 'without a value' do + let(:value) { nil } - it 'uses the correct width' do - expect(html).to have_css("div.progress-bar[style='width: 42%;']") + 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