FIX: Skip poll tutorial if user cannot create polls (#9058)

This commit is contained in:
Dan Ungureanu 2020-02-27 16:01:59 +02:00 committed by GitHub
parent 0af2f5db64
commit d461772661
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 4 deletions

View File

@ -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: {

View File

@ -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,