From d4617726613346fa1db18594d501841dbc379211 Mon Sep 17 00:00:00 2001 From: Dan Ungureanu Date: Thu, 27 Feb 2020 16:01:59 +0200 Subject: [PATCH] FIX: Skip poll tutorial if user cannot create polls (#9058) --- .../advanced_user_narrative.rb | 2 +- .../advanced_user_narrative_spec.rb | 23 ++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) 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 8da5cdc059b..185d472ea62 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 @@ -82,7 +82,7 @@ module DiscourseNarrativeBot }, tutorial_poll: { - prerequisite: Proc.new { SiteSetting.poll_enabled }, + prerequisite: Proc.new { SiteSetting.poll_enabled && @user.has_trust_level?(SiteSetting.poll_minimum_trust_level_to_create) }, 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 d9ea4c9e2ed..a44c9e250ca 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 @@ -556,12 +556,29 @@ RSpec.describe DiscourseNarrativeBot::AdvancedUserNarrative do end end - describe 'when poll is disabled' do - before do + describe 'when user cannot create polls' do + it 'should create the right reply (polls disabled)' do SiteSetting.poll_enabled = false + + 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 - it 'should create the right reply' do + it 'should create the right reply (insufficient trust level)' do + user.update(trust_level: 0) + TopicUser.change( user.id, topic.id,