From c0c8a2e49d395b574c7a31727c06f315139d7336 Mon Sep 17 00:00:00 2001 From: Asko Nomm Date: Thu, 7 Apr 2022 11:08:32 +0200 Subject: Add tests for italic text, and support using `*` for italic text creation as well (re #5) --- src/clarktown/parsers/italic.clj | 4 ++-- test/clarktown/parsers/italic_test.clj | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 test/clarktown/parsers/italic_test.clj diff --git a/src/clarktown/parsers/italic.clj b/src/clarktown/parsers/italic.clj index 5dfe46e..5f63620 100644 --- a/src/clarktown/parsers/italic.clj +++ b/src/clarktown/parsers/italic.clj @@ -7,11 +7,11 @@ "Renders all occurring italic text as italic." [block _] (loop [block block - matches (-> (re-seq #"_.*?_" block) + matches (-> (re-seq #"(\*{1}|\_{1})(.*?)(\*{1}|\_{1})" block) distinct)] (if (empty? matches) block - (let [match (first matches) + (let [match (ffirst matches) value (subs match 1 (- (count match) 1)) replacement (str "" value "")] (recur (string/replace block match replacement) diff --git a/test/clarktown/parsers/italic_test.clj b/test/clarktown/parsers/italic_test.clj new file mode 100644 index 0000000..373a945 --- /dev/null +++ b/test/clarktown/parsers/italic_test.clj @@ -0,0 +1,17 @@ +(ns clarktown.parsers.italic-test + (:require [clojure.test :refer [deftest testing is]] + [clarktown.parsers.italic :as italic])) + + +(deftest italic-test + (testing "Creating italic text with one surrounding asterisk character" + (is (= "This is italic." + (italic/render "*This is italic.*" nil)))) + + (testing "Creating italic text with one surrounding underscore character" + (is (= "This is italic." + (italic/render "_This is italic._" nil)))) + + (testing "Creating italic text with both underscores and asterisks mixed" + (is (= "Hi, my name is John, what is your name?" + (italic/render "Hi, my name is *John*, what is _your name?_" nil))))) \ No newline at end of file -- cgit v1.2.3