Modifies the overview page so when there is an empty dataset, there is clearer explanatory text and an empty version of the variance chart. Finishes #180118088
parent
f553c3c11c
commit
eb4c699f60
@ -1,26 +1,53 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe 'overview/_variance_chart.html.erb' do
|
describe 'overview/_variance_chart.html.erb' do
|
||||||
subject { Nokogiri::HTML(rendered) }
|
context 'When there are scores to show' do
|
||||||
|
subject { Nokogiri::HTML(rendered) }
|
||||||
|
|
||||||
let(:higher_scoring_measure) { create(:measure) }
|
let(:higher_scoring_measure) { create(:measure) }
|
||||||
let(:lower_scoring_measure) { create(:measure) }
|
let(:lower_scoring_measure) { create(:measure) }
|
||||||
|
|
||||||
before :each do
|
before :each do
|
||||||
presenters = [
|
presenters = [
|
||||||
VarianceChartRowPresenter.new(measure: lower_scoring_measure, score: Score.new(1)),
|
VarianceChartRowPresenter.new(measure: lower_scoring_measure, score: Score.new(1)),
|
||||||
VarianceChartRowPresenter.new(measure: higher_scoring_measure, score: Score.new(5))
|
VarianceChartRowPresenter.new(measure: higher_scoring_measure, score: Score.new(5))
|
||||||
]
|
]
|
||||||
|
|
||||||
render partial: 'variance_chart', locals: { presenters: presenters }
|
render partial: 'variance_chart', locals: { presenters: presenters}
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'displays higher scoring measures above lower scoring measures' do
|
||||||
|
measure_row_bars = subject.css('rect.measure-row-bar')
|
||||||
|
|
||||||
|
higher_scoring_measure_index = measure_row_bars.find_index do |bar|
|
||||||
|
bar['data-for-measure-id'] == higher_scoring_measure.measure_id
|
||||||
|
end
|
||||||
|
lower_scoring_measure_index = measure_row_bars.find_index do |bar|
|
||||||
|
bar['data-for-measure-id'] == lower_scoring_measure.measure_id
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(higher_scoring_measure_index).to be < lower_scoring_measure_index
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'displays higher scoring measures above lower scoring measures' do
|
context 'When there are no scores to show for any measures' do
|
||||||
measure_row_bars = subject.css("rect.measure-row-bar")
|
before :each do
|
||||||
|
measure_lacking_score = create(:measure)
|
||||||
|
another_measure_lacking_score = create(:measure)
|
||||||
|
presenters = [
|
||||||
|
VarianceChartRowPresenter.new(measure: measure_lacking_score, score: Score.new(nil)),
|
||||||
|
VarianceChartRowPresenter.new(measure: another_measure_lacking_score, score: Score.new(nil))
|
||||||
|
]
|
||||||
|
|
||||||
|
render partial: 'variance_chart', locals: { presenters: presenters}
|
||||||
|
end
|
||||||
|
|
||||||
higher_scoring_measure_index = measure_row_bars.find_index { |bar| bar['data-for-measure-id'] == higher_scoring_measure.measure_id }
|
it "displays the text 'insufficient data' for an empty dataset" do
|
||||||
lower_scoring_measure_index = measure_row_bars.find_index { |bar| bar['data-for-measure-id'] == lower_scoring_measure.measure_id }
|
expect(rendered).to have_text 'Insufficient data'
|
||||||
|
end
|
||||||
|
|
||||||
expect(higher_scoring_measure_index).to be < lower_scoring_measure_index
|
it "does not display the partial data text: 'The following measures are not displayed due to limited availability of school admin data and/or low survey response rates:' " do
|
||||||
|
expect(rendered).not_to have_text 'The following measures are not displayed due to limited availability of school admin data and/or low survey response rates:'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in new issue