Skip to content
Snippets Groups Projects
Commit 3f2199bf authored by Jorn van de Beek's avatar Jorn van de Beek
Browse files

Handle missing subscore labels correctly

parent d1475b47
No related branches found
No related tags found
1 merge request!20Serialize outcome tables from dsl calls into roqua.json
Pipeline #92297 passed
......@@ -39,4 +39,4 @@ module Quby
end
end
end
end
\ No newline at end of file
end
......@@ -102,12 +102,13 @@ module Quby
default_collapsed: table.default_collapsed,
score_keys: table.score_keys,
subscore_keys: table.subscore_keys}.compact
table.score_keys.each do |score_key|
table.subscore_keys.each do |subscore_key|
table.subscore_keys.each do |subscore_key|
table.score_keys.find do |score_key|
subschema = questionnaire.score_schemas[score_key].subscore_schemas.find do |subschema|
subschema.key == subscore_key
end
headers[subscore_key] = subschema.label
headers[subscore_key] = subschema&.label
end
end
end
......
......@@ -5,15 +5,15 @@ describe Quby::Compiler::Outputs::RoquaSerializer do
questionnaire = dsl("test") do
title "Test Quest"
score_schema :score0, 'Score 0' do
subscore(:value, 'Nog iets', export_key: :score0) { 'Iets' }
end
score_schema :score1, 'Score 1' do
subscore(:value, 'Waarde', export_key: :score1) { 1 }
subscore(:int, 'Interpretatie', export_key: :score1_i) { 'Wah' }
end
score_schema :score0, 'Score 0' do
subscore(:value, 'Nog iets', export_key: :score0) { 'Iets' }
end
outcome_table name: 'Alleen score 0',
key: :only_score0,
score_keys: [:score0],
......@@ -23,20 +23,20 @@ describe Quby::Compiler::Outputs::RoquaSerializer do
outcome_table name: 'Scores',
key: :scores,
score_keys: [:score0, :score1],
subscore_keys: %i[value]
subscore_keys: %i[value int]
end
serializer = described_class.new(questionnaire)
expected = {
outcome_tables_schema:
{headers: {value: "Waarde"},
{headers: {int: "Interpretatie", value: "Nog iets"},
tables: {only_score0: {default_collapsed: true,
name: "Alleen score 0",
score_keys: [:score0],
subscore_keys: [:value]},
scores: {name: "Scores",
score_keys: [:score0, :score1],
subscore_keys: [:value]}}}
subscore_keys: [:value, :int]}}}
}
expect(serializer.as_json).to include(expected)
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment