diff --git a/app/controllers/generic_controller.rb b/app/controllers/generic_controller.rb index 84fafc7..c6da8ad 100644 --- a/app/controllers/generic_controller.rb +++ b/app/controllers/generic_controller.rb @@ -9,8 +9,15 @@ def index @model = find_class @metrics = @model.where(datetime: (Time.now - @hours.hours)..Time.now) + + if @metrics == [] + @metrics = @model.first(3) + end + @bucketed_metrics = @metrics.group_by { |g| g.datetime.strftime "%Y-%m-%d" } + @with_year = @metrics.first.datetime.year < Time.now.year + @has_charts = false end diff --git a/app/controllers/longterm_controller.rb b/app/controllers/longterm_controller.rb index 0feb519..7135026 100644 --- a/app/controllers/longterm_controller.rb +++ b/app/controllers/longterm_controller.rb @@ -6,7 +6,8 @@ def index { model: GlycatedHaemoglobin, metrics: GlycatedHaemoglobin.all, - bucketed_metrics: GlycatedHaemoglobin.all.group_by { |g| g.datetime.strftime "%Y-%m-%d" } + bucketed_metrics: GlycatedHaemoglobin.all.group_by { |g| g.datetime.strftime "%Y-%m-%d" }, + with_year: nil }, { model: BloodPressure, diff --git a/spec/requests/sparse_metrics_spec.rb b/spec/requests/sparse_metrics_spec.rb new file mode 100644 index 0000000..cabf6bc --- /dev/null +++ b/spec/requests/sparse_metrics_spec.rb @@ -0,0 +1,26 @@ +describe 'GlycatedHaemoglobin' do + describe 'Return at least something if the metric is sparse' do + let(:user) { create :user } + + before :each do + DatabaseCleaner.clean + end + + it 'shows the year if the first metric is from last year or even older' do + create(:glycated_haemoglobin, datetime: '2015-06-06') + Timecop.freeze 2016, 02, 27 do + visit glycated_haemoglobins_url(as: user) + expect(page).to have_content 'June 6th 2015' + end + end + + it 'does not show the year if the first metric is from this year' do + create(:glycated_haemoglobin, datetime: '2016-01-01') + Timecop.freeze 2016, 02, 27 do + visit glycated_haemoglobins_url(as: user) + expect(page).to have_content 'January 1st' + expect(page).to_not have_content 'January 1st 2016' + end + end + end +end