diff --git a/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 b/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 index 1174be579c4..4af5b67f08b 100644 --- a/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 +++ b/app/assets/javascripts/pretty-text/engines/discourse-markdown-it.js.es6 @@ -50,7 +50,9 @@ class Ruler { getRuleForTag(tag) { this.ensureCache(); - return this.cache[tag]; + if (this.cache.hasOwnProperty(tag)) { + return this.cache[tag]; + } } ensureCache() { diff --git a/spec/components/pretty_text_spec.rb b/spec/components/pretty_text_spec.rb index 2317dd9556d..d02683bee8c 100644 --- a/spec/components/pretty_text_spec.rb +++ b/spec/components/pretty_text_spec.rb @@ -155,6 +155,10 @@ describe PrettyText do expect(cooked).to eq(html.strip) end + it "handles bbcode edge cases" do + expect(PrettyText.cook "[constructor]\ntest").to eq("

[constructor]
\ntest

") + end + it "can handle quote edge cases" do expect(PrettyText.cook("[quote]abc\ntest\n[/quote]")).not_to include('aside') expect(PrettyText.cook("[quote] \ntest\n[/quote] ")).to include('aside')