diff --git a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb index a814f1cd73f1e8..bc134eb7e36cdb 100644 --- a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb +++ b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/new_user_narrative.rb @@ -95,6 +95,7 @@ class NewUserNarrative < Base }, tutorial_flag: { + prerequisite: Proc.new { SiteSetting.allow_flagging_staff }, next_state: :tutorial_search, next_instructions: Proc.new { I18n.t("#{I18N_KEY}.search.instructions", base_uri: Discourse.base_uri) }, flag: { diff --git a/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/new_user_narrative_spec.rb b/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/new_user_narrative_spec.rb index 1b1700c5f32c7c..0d0d144f5ec2e8 100644 --- a/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/new_user_narrative_spec.rb +++ b/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/new_user_narrative_spec.rb @@ -401,6 +401,22 @@ expect(narrative.get_data(user)[:state].to_sym).to eq(:tutorial_flag) end + + describe 'when allow_flagging_staff is false' do + it 'should go to the right state' do + SiteSetting.allow_flagging_staff = false + post.update!(raw: skip_trigger) + + DiscourseNarrativeBot::TrackSelector.new( + :reply, + user, + post_id: post.id + ).select + + expect(narrative.get_data(user)[:state].to_sym) + .to eq(:tutorial_search) + end + end end end