From 842d64c8f02a7958e4201660b05f2c17cdd9b6dc Mon Sep 17 00:00:00 2001 From: Asko Nomm Date: Thu, 7 Apr 2022 11:05:25 +0200 Subject: Add tests for bold text, and support using `__` for bold text creation as well (re #5) --- src/clarktown/parsers/bold.clj | 4 ++-- test/clarktown/parsers/bold_test.clj | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 test/clarktown/parsers/bold_test.clj 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 "" value "")] (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 (= "This is bold." + (bold/render "**This is bold.**" nil)))) + + (testing "Creating bold text with two surrounding underscore characters" + (is (= "This is bold." + (bold/render "__This is bold.__" nil)))) + + (testing "Creating bold text with both underscores and asterisks mixed" + (is (= "Hi, my name is John, what is your name?" + (bold/render "Hi, my name is **John**, what is __your name?__" nil))))) \ No newline at end of file -- cgit v1.2.3