diff --git a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/advanced_user_narrative.rb b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/advanced_user_narrative.rb index b5fbe5bc73..a503392f95 100644 --- a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/advanced_user_narrative.rb +++ b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/advanced_user_narrative.rb @@ -80,6 +80,7 @@ module DiscourseNarrativeBot }, tutorial_poll: { + prerequisite: Proc.new { SiteSetting.poll_enabled }, next_state: :tutorial_details, next_instructions: Proc.new { I18n.t("#{I18N_KEY}.details.instructions", i18n_post_args) }, reply: { diff --git a/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/advanced_user_narrative_spec.rb b/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/advanced_user_narrative_spec.rb index c7ae682061..81f0e01155 100644 --- a/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/advanced_user_narrative_spec.rb +++ b/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/advanced_user_narrative_spec.rb @@ -542,6 +542,29 @@ RSpec.describe DiscourseNarrativeBot::AdvancedUserNarrative do expect(narrative.get_data(user)[:state].to_sym).to eq(:tutorial_poll) end end + + describe 'when poll is disabled' do + before do + SiteSetting.poll_enabled = false + end + + it 'should create the right reply' do + TopicUser.change( + user.id, + topic.id, + notification_level: TopicUser.notification_levels[:tracking] + ) + + expected_raw = <<~RAW + #{I18n.t('discourse_narrative_bot.advanced_user_narrative.change_topic_notification_level.reply', base_uri: '')} + + #{I18n.t('discourse_narrative_bot.advanced_user_narrative.details.instructions', base_uri: '')} + RAW + + expect(Post.last.raw).to eq(expected_raw.chomp) + expect(narrative.get_data(user)[:state].to_sym).to eq(:tutorial_details) + end + end end context 'poll tutorial' do