diff --git a/app/models/managed_interactive.rb b/app/models/managed_interactive.rb index 06a3ec91e..b80e16358 100644 --- a/app/models/managed_interactive.rb +++ b/app/models/managed_interactive.rb @@ -266,7 +266,7 @@ def self.import(import_hash) # this can't be moved into BaseInteractive as enable_learner_state is defined as a method in # this class and that causes reportable? not to be defined correctly for outside callers def reportable? - enable_learner_state + enable_learner_state && !hide_question_number end def reportable_in_iframe? diff --git a/app/models/mw_interactive.rb b/app/models/mw_interactive.rb index 7b2bd9032..365b09aef 100644 --- a/app/models/mw_interactive.rb +++ b/app/models/mw_interactive.rb @@ -118,7 +118,7 @@ def self.import(import_hash) end def reportable? - enable_learner_state + enable_learner_state && !hide_question_number end def reportable_in_iframe? diff --git a/spec/models/managed_interactive_spec.rb b/spec/models/managed_interactive_spec.rb index bb954b43f..88ca9623c 100644 --- a/spec/models/managed_interactive_spec.rb +++ b/spec/models/managed_interactive_spec.rb @@ -3,6 +3,9 @@ describe ManagedInteractive do it_behaves_like "a base interactive", :managed_interactive + let(:enable_learner_state) { true } + let(:hide_question_number) { false } + let(:library_interactive) { FactoryGirl.create(:library_interactive, :name => 'Test Library managed_Interactive', :base_url => 'http://concord.org/', @@ -13,7 +16,8 @@ :full_window => true, :click_to_play_prompt => "base click_to_play_prompt", :image_url => "http://base.url/image", - :enable_learner_state => true, + :enable_learner_state => enable_learner_state, + :hide_question_number => hide_question_number, :show_delete_data_button => false, :has_report_url => true, :no_snapshots => true, @@ -410,4 +414,41 @@ expect(managed_interactive.linked_interactive).to eq mw_interactive2 end end + + describe "reportable?" do + describe "when enable_learner_state=false and hide_question_number=false" do + let(:enable_learner_state) { false } + let(:hide_question_number) { false } + + it "returns false" do + expect(managed_interactive.reportable?).to eq false + end + end + + describe "when enable_learner_state=false and hide_question_number=true" do + let(:enable_learner_state) { false } + let(:hide_question_number) { true } + + it "returns false" do + expect(managed_interactive.reportable?).to eq false + end + end + + describe "when enable_learner_state=true and hide_question_number=false" do + let(:enable_learner_state) { true } + let(:hide_question_number) { false } + + it "returns true" do + expect(managed_interactive.reportable?).to eq true + end + end + + describe "when enable_learner_state=true and hide_question_number=true" do + let(:enable_learner_state) { true } + let(:hide_question_number) { true } + it "returns false" do + expect(managed_interactive.reportable?).to eq false + end + end + end end diff --git a/spec/models/mw_interactive_spec.rb b/spec/models/mw_interactive_spec.rb index ef20641c6..5c8a79f90 100644 --- a/spec/models/mw_interactive_spec.rb +++ b/spec/models/mw_interactive_spec.rb @@ -221,4 +221,49 @@ end end + + + describe "reportable?" do + let(:enable_learner_state) { false } + let(:hide_question_number) { false } + let(:mw_interactive) { FactoryGirl.create(:mw_interactive, + :enable_learner_state => enable_learner_state, + :hide_question_number => hide_question_number + )} + + describe "when enable_learner_state=false and hide_question_number=false" do + let(:enable_learner_state) { false } + let(:hide_question_number) { false } + + it "returns false" do + expect(mw_interactive.reportable?).to eq false + end + end + + describe "when enable_learner_state=false and hide_question_number=true" do + let(:enable_learner_state) { false } + let(:hide_question_number) { true } + + it "returns false" do + expect(mw_interactive.reportable?).to eq false + end + end + + describe "when enable_learner_state=true and hide_question_number=false" do + let(:enable_learner_state) { true } + let(:hide_question_number) { false } + + it "returns true" do + expect(mw_interactive.reportable?).to eq true + end + end + + describe "when enable_learner_state=true and hide_question_number=true" do + let(:enable_learner_state) { true } + let(:hide_question_number) { true } + it "returns false" do + expect(mw_interactive.reportable?).to eq false + end + end + end end