mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 10:50:26 -06:00
SPEC: add spec to ensure discobot works in French
PERF: memoize cooked triggers
Follow-up to 3c31884b
This commit is contained in:
parent
c16ad39f8e
commit
d234e0f922
@ -222,9 +222,15 @@ module DiscourseNarrativeBot
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@@cooked_triggers = {}
|
||||||
|
|
||||||
|
def cook(trigger)
|
||||||
|
@@cooked_triggers[trigger] ||= PrettyText.cook("@#{self.discobot_username} #{trigger}")
|
||||||
|
end
|
||||||
|
|
||||||
def match_trigger?(trigger)
|
def match_trigger?(trigger)
|
||||||
# we remove the leading <p> to allow for trigger to be at the end of a paragraph
|
# we remove the leading <p> to allow for trigger to be at the end of a paragraph
|
||||||
cooked_trigger = PrettyText.cook("@#{self.discobot_username} #{trigger}")[3..-1]
|
cooked_trigger = cook(trigger)[3..-1]
|
||||||
regexp = Regexp.new(cooked_trigger, 'i')
|
regexp = Regexp.new(cooked_trigger, 'i')
|
||||||
match = @post.cooked.match(regexp)
|
match = @post.cooked.match(regexp)
|
||||||
|
|
||||||
|
@ -416,6 +416,15 @@ describe DiscourseNarrativeBot::TrackSelector do
|
|||||||
expect(new_post.raw).to eq(random_mention_reply)
|
expect(new_post.raw).to eq(random_mention_reply)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'works with french locale' do
|
||||||
|
I18n.with_locale("fr") do
|
||||||
|
post.update!(raw: "@discobot afficher l'aide")
|
||||||
|
described_class.new(:reply, user, post_id: post.id).select
|
||||||
|
# gsub'ing to ensure non-breaking whitespaces matches regular whitespaces
|
||||||
|
expect(Post.last.raw.gsub(/[[:space:]]+/, " ")).to eq(help_message.gsub(/[[:space:]]+/, " "))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'should not rate limit help message' do
|
it 'should not rate limit help message' do
|
||||||
post.update!(raw: '@discobot')
|
post.update!(raw: '@discobot')
|
||||||
other_post = Fabricate(:post, raw: 'discobot', topic: post.topic)
|
other_post = Fabricate(:post, raw: 'discobot', topic: post.topic)
|
||||||
|
Loading…
Reference in New Issue
Block a user