parent
f5e5abc27e
commit
ad7dd85524
@ -1,24 +1,16 @@
|
|||||||
class DashboardController < SqmApplicationController
|
class DashboardController < SqmApplicationController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@measure_graph_row_presenters = measure_ids
|
@variance_chart_row_presenters = Measure.all.map(&method(:presenter_for_measure))
|
||||||
.map { |measure_id| Measure.find_by_measure_id measure_id }
|
|
||||||
.map(&method(:presenter_for_measure))
|
|
||||||
.sort
|
|
||||||
.reverse
|
|
||||||
|
|
||||||
@category_presenters = SqmCategory.sorted.map { |sqm_category| CategoryPresenter.new(category: sqm_category) }
|
@category_presenters = SqmCategory.sorted.map { |sqm_category| CategoryPresenter.new(category: sqm_category) }
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def measure_ids
|
|
||||||
Measure.all.map(&:measure_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
def presenter_for_measure(measure)
|
def presenter_for_measure(measure)
|
||||||
score = SurveyItemResponse.score_for_measure(measure: measure, school: @school, academic_year: @academic_year)
|
score = SurveyItemResponse.score_for_measure(measure: measure, school: @school, academic_year: @academic_year)
|
||||||
|
|
||||||
MeasureGraphRowPresenter.new(measure: measure, score: score)
|
VarianceChartRowPresenter.new(measure: measure, score: score)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -0,0 +1,26 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe 'dashboard/_variance_chart.html.erb' do
|
||||||
|
subject { Nokogiri::HTML(rendered) }
|
||||||
|
|
||||||
|
let(:higher_scoring_measure) { create(:measure) }
|
||||||
|
let(:lower_scoring_measure) { create(:measure) }
|
||||||
|
|
||||||
|
before :each do
|
||||||
|
presenters = [
|
||||||
|
VarianceChartRowPresenter.new(measure: lower_scoring_measure, score: 1),
|
||||||
|
VarianceChartRowPresenter.new(measure: higher_scoring_measure, score: 5)
|
||||||
|
]
|
||||||
|
|
||||||
|
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 { |bar| bar['data-for-measure-id'] == higher_scoring_measure.measure_id }
|
||||||
|
lower_scoring_measure_index = measure_row_bars.find_index { |bar| bar['data-for-measure-id'] == lower_scoring_measure.measure_id }
|
||||||
|
|
||||||
|
expect(higher_scoring_measure_index).to be < lower_scoring_measure_index
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in new issue