diff options
| author | Asko Nomm <asko@bien.ee> | 2022-04-07 11:05:25 +0200 |
|---|---|---|
| committer | Asko Nomm <asko@bien.ee> | 2022-04-07 11:05:25 +0200 |
| commit | 842d64c8f02a7958e4201660b05f2c17cdd9b6dc (patch) | |
| tree | 650a8904cff9ba146b18452d02808ccd82a70ad7 | |
| parent | 097f553f6394510b0bae8c56866c2a5b6782b2ff (diff) | |
Add tests for bold text, and support using `__` for bold text creation as well (re #5)
| -rw-r--r-- | src/clarktown/parsers/bold.clj | 4 | ||||
| -rw-r--r-- | test/clarktown/parsers/bold_test.clj | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/clarktown/parsers/bold.clj b/src/clarktown/parsers/bold.clj index cc209e6..e672153 100644 --- a/src/clarktown/parsers/bold.clj +++ b/src/clarktown/parsers/bold.clj @@ -7,11 +7,11 @@ "Renders all occurring bold text as bold." [block _] (loop [block block - matches (-> (re-seq #"\*\*.*?\*\*" block) + matches (-> (re-seq #"(\*{2}|\_{2})(.*?)(\*{2}|\_{2})" block) distinct)] (if (empty? matches) block - (let [match (first matches) + (let [match (ffirst matches) value (subs match 2 (- (count match) 2)) replacement (str "<strong>" value "</strong>")] (recur (string/replace block match replacement) diff --git a/test/clarktown/parsers/bold_test.clj b/test/clarktown/parsers/bold_test.clj new file mode 100644 index 0000000..9689052 --- /dev/null +++ b/test/clarktown/parsers/bold_test.clj @@ -0,0 +1,17 @@ +(ns clarktown.parsers.bold-test + (:require [clojure.test :refer [deftest testing is]] + [clarktown.parsers.bold :as bold])) + + +(deftest bold-test + (testing "Creating bold text with two surrounding asterisk characters" + (is (= "<strong>This is bold.</strong>" + (bold/render "**This is bold.**" nil)))) + + (testing "Creating bold text with two surrounding underscore characters" + (is (= "<strong>This is bold.</strong>" + (bold/render "__This is bold.__" nil)))) + + (testing "Creating bold text with both underscores and asterisks mixed" + (is (= "Hi, my name is <strong>John</strong>, what is <strong>your name?</strong>" + (bold/render "Hi, my name is **John**, what is __your name?__" nil)))))
\ No newline at end of file |
