Skip to content
Snippets Groups Projects
Commit c60e35e5 authored by Henk van der Veen's avatar Henk van der Veen
Browse files

Merge branch 'hh_multiple_depends_on' into 'main'

verander depend_on in array

See merge request !9
parents e3708505 65d8e948
Branches
Tags
1 merge request!9verander depend_on in array
Pipeline #78511 passed
...@@ -14,11 +14,11 @@ module Quby ...@@ -14,11 +14,11 @@ module Quby
trigger_on: true, trigger_on: true,
shows_questions: [], shows_questions: [],
hides_questions: [], hides_questions: [],
depends_on: nil, # used in interface to hide this flag unless the depended on flag is set to true depends_on: [], # used in interface to hide this flag unless the depended on flag is set to true
default_in_interface: nil) # used in interface to set a default for the flag state, default_in_interface: nil) # used in interface to set a default for the flag state,
# does not have an effect outside of the interface # does not have an effect outside of the interface
super(key, description_true, description_false, description, internal, trigger_on, shows_questions, super(key, description_true, description_false, description, internal, trigger_on, shows_questions,
hides_questions, depends_on, default_in_interface) hides_questions, Array.wrap(depends_on).map(&:to_s), default_in_interface)
ensure_valid_descriptions ensure_valid_descriptions
end end
# rubocop:enable ParameterLists # rubocop:enable ParameterLists
......
...@@ -131,9 +131,9 @@ module Quby ...@@ -131,9 +131,9 @@ module Quby
end end
def validate_flag_depends_on(questionnaire, flag) def validate_flag_depends_on(questionnaire, flag)
return if flag.depends_on.blank? || questionnaire.flags.key?(flag.depends_on) return if (missing = flag.depends_on - questionnaire.flags.keys).blank?
fail ArgumentError, "Flag #{flag.key} depends_on nonexistent flag '#{flag.depends_on}'" fail ArgumentError, "Flag #{flag.key} depends_on nonexistent flag '#{missing.to_sentence}'"
end end
def validate_respondent_types(questionnaire) def validate_respondent_types(questionnaire)
......
...@@ -47,5 +47,11 @@ module Quby::Compiler::Entities ...@@ -47,5 +47,11 @@ module Quby::Compiler::Entities
expect(flag.variable_description).to eq("test flag (true - 'flag is true', false - 'flag is false')") expect(flag.variable_description).to eq("test flag (true - 'flag is true', false - 'flag is false')")
end end
end end
# we only set through the initializer.
it 'transforms depends_on into an array of string' do
flag = described_class.new key: :foo, description: 'foo', depends_on: :bar
expect(flag.depends_on).to eq ['bar']
end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment