FIX: match discobot triggers on cooked version

In French, the help trigger has a raw content of "afficher l'aider" which is then cooked into "afficher l’aide" (note the different quote character).
Since we were checking the raw content of the trigger against the cooked version of the post, this trigger never worked in French.

This changes so that we cook the trigger before checking in against the cooked version of the post.

DEV: new 'discobot_username' method that is used everywhere instead of 'discobot_user.username' / 'discobot_user.username_lower'
This commit is contained in:
Régis Hanol
2020-06-25 13:29:55 +02:00
parent 689568c216
commit 3c31884b79
9 changed files with 47 additions and 46 deletions

View File

@ -3,7 +3,9 @@
require 'rails_helper'
RSpec.describe DiscourseNarrativeBot::AdvancedUserNarrative do
let(:discobot_user) { ::DiscourseNarrativeBot::Base.new.discobot_user }
let(:narrative_bot) { ::DiscourseNarrativeBot::Base.new }
let(:discobot_user) { narrative_bot.discobot_user }
let(:discobot_username) { narrative_bot.discobot_username }
let(:first_post) { Fabricate(:post, user: discobot_user) }
let(:user) { Fabricate(:user) }
@ -175,7 +177,7 @@ RSpec.describe DiscourseNarrativeBot::AdvancedUserNarrative do
describe 'when reply contains the skip trigger' do
it 'should create the right reply' do
post.update!(raw: "@#{discobot_user.username} #{skip_trigger.upcase}")
post.update!(raw: "@#{discobot_username} #{skip_trigger.upcase}")
described_class.any_instance.expects(:enqueue_timeout_job).with(user)
DiscourseNarrativeBot::TrackSelector.new(:reply, user, post_id: post.id).select

View File

@ -4,7 +4,9 @@ require 'rails_helper'
describe DiscourseNarrativeBot::NewUserNarrative do
let!(:welcome_topic) { Fabricate(:topic, title: 'Welcome to Discourse') }
let(:discobot_user) { ::DiscourseNarrativeBot::Base.new.discobot_user }
let(:narrative_bot) { ::DiscourseNarrativeBot::Base.new }
let(:discobot_user) { narrative_bot.discobot_user }
let(:discobot_username) { narrative_bot.discobot_username }
let(:first_post) { Fabricate(:post, user: discobot_user) }
let(:user) { Fabricate(:user) }
@ -233,7 +235,7 @@ describe DiscourseNarrativeBot::NewUserNarrative do
describe 'when reply contains the skip trigger' do
it 'should create the right reply' do
post.update!(raw: "@#{discobot_user.username} #{skip_trigger.upcase}")
post.update!(raw: "@#{discobot_username} #{skip_trigger.upcase}")
described_class.any_instance.expects(:enqueue_timeout_job).with(user)
DiscourseNarrativeBot::TrackSelector.new(:reply, user, post_id: post.id).select
@ -335,7 +337,7 @@ describe DiscourseNarrativeBot::NewUserNarrative do
#{I18n.t('discourse_narrative_bot.new_user_narrative.onebox.reply', base_uri: '')}
#{I18n.t('discourse_narrative_bot.new_user_narrative.mention.instructions',
discobot_username: discobot_user.username, base_uri: ''
discobot_username: discobot_username, base_uri: ''
)}
RAW
@ -708,7 +710,7 @@ describe DiscourseNarrativeBot::NewUserNarrative do
expect(new_post.raw).to eq(I18n.t(
'discourse_narrative_bot.new_user_narrative.mention.instructions',
discobot_username: discobot_user.username, base_uri: ''
discobot_username: discobot_username, base_uri: ''
))
expect(narrative.get_data(user)[:state].to_sym).to eq(:tutorial_mention)
@ -746,7 +748,7 @@ describe DiscourseNarrativeBot::NewUserNarrative do
#{I18n.t('discourse_narrative_bot.new_user_narrative.emoji.reply', base_uri: '')}
#{I18n.t('discourse_narrative_bot.new_user_narrative.mention.instructions',
discobot_username: discobot_user.username, base_uri: ''
discobot_username: discobot_username, base_uri: ''
)}
RAW
@ -778,7 +780,7 @@ describe DiscourseNarrativeBot::NewUserNarrative do
expect(Post.last.raw).to eq(I18n.t(
'discourse_narrative_bot.new_user_narrative.mention.not_found',
username: user.username,
discobot_username: discobot_user.username,
discobot_username: discobot_username,
base_uri: ''
))
@ -797,7 +799,7 @@ describe DiscourseNarrativeBot::NewUserNarrative do
expect(new_post.raw).to eq(I18n.t(
'discourse_narrative_bot.new_user_narrative.formatting.instructions',
discobot_username: discobot_user.username, base_uri: ''
discobot_username: discobot_username, base_uri: ''
))
expect(narrative.get_data(user)[:state].to_sym).to eq(:tutorial_formatting)

View File

@ -4,12 +4,14 @@ require 'rails_helper'
describe DiscourseNarrativeBot::TrackSelector do
let(:user) { Fabricate(:user) }
let(:discobot_user) { ::DiscourseNarrativeBot::Base.new.discobot_user }
let(:narrative_bot) { ::DiscourseNarrativeBot::Base.new }
let(:discobot_user) { narrative_bot.discobot_user }
let(:discobot_username) { narrative_bot.discobot_username }
let(:narrative) { DiscourseNarrativeBot::NewUserNarrative.new }
let(:random_mention_reply) do
I18n.t('discourse_narrative_bot.track_selector.random_mention.reply',
discobot_username: discobot_user.username,
discobot_username: discobot_username,
help_trigger: described_class.help_trigger
)
end
@ -20,8 +22,6 @@ describe DiscourseNarrativeBot::TrackSelector do
end
let(:help_message) do
discobot_username = discobot_user.username
end_message = <<~RAW
#{I18n.t(
'discourse_narrative_bot.track_selector.random_mention.tracks',