summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAsko Nomm <asko@bien.ee>2022-04-07 11:05:25 +0200
committerAsko Nomm <asko@bien.ee>2022-04-07 11:05:25 +0200
commit842d64c8f02a7958e4201660b05f2c17cdd9b6dc (patch)
tree650a8904cff9ba146b18452d02808ccd82a70ad7
parent097f553f6394510b0bae8c56866c2a5b6782b2ff (diff)
Add tests for bold text, and support using `__` for bold text creation as well (re #5)
-rw-r--r--src/clarktown/parsers/bold.clj4
-rw-r--r--test/clarktown/parsers/bold_test.clj17
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