summaryrefslogtreecommitdiff
path: root/test/clarktown/renderers/heading_block_test.clj
blob: 8f229fb6a298505f43af1343504509ccfa551f42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
(ns clarktown.renderers.heading-block-test
  (:require
    [clojure.test :refer [deftest testing is]]
    [clarktown.renderers.heading-block :as heading-block]))


(deftest atx-heading-renderer-test
  (testing "ATX heading block that's a H1"
    (is (= "<h1>This is a heading block.</h1>"
           (heading-block/render "# This is a heading block." nil nil))))

  (testing "ATX heading block that's a H2"
    (is (= "<h2>This is a heading block.</h2>"
           (heading-block/render "## This is a heading block." nil nil))))

  (testing "ATX heading block that's a H3"
    (is (= "<h3>This is a heading block.</h3>"
           (heading-block/render "### This is a heading block." nil nil))))

  (testing "ATX heading block that's a H4"
    (is (= "<h4>This is a heading block.</h4>"
           (heading-block/render "#### This is a heading block." nil nil))))

  (testing "ATX heading block that's a H5"
    (is (= "<h5>This is a heading block.</h5>"
           (heading-block/render "##### This is a heading block." nil nil))))
    
  (testing "ATX heading block that's a H6"
    (is (= "<h6>This is a heading block.</h6>"
           (heading-block/render "###### This is a heading block." nil nil))))
  
  (testing "No H tag when 7 or more # characters"
    (is (= "####### This is not a heading block."
           (heading-block/render "####### This is not a heading block." nil nil))))
  
  (testing "No H tag when there is no space between # characters and value"
    (is (= "#This is not a heading block."
           (heading-block/render "#This is not a heading block." nil nil))))
  
  (testing "ATX heading can precede up to 3 spaces"
    (is (= "<h1>This is a heading.</h1>"
           (heading-block/render " # This is a heading." nil nil)))
    (is (= "<h1>This is a heading.</h1>"
           (heading-block/render "  # This is a heading." nil nil)))
    (is (= "<h1>This is a heading.</h1>"
           (heading-block/render "   # This is a heading." nil nil))))
  
  (testing "But no more than 3 spaces"
    (is (= "    # This is a heading."
           (heading-block/render "    # This is a heading." nil nil)))))    
    


(deftest settext-heading-renderer-text
  (testing "Settext heading block that's a H1"
    (is (= "<h1>This is a heading block.</h1>"
           (heading-block/render "This is a heading block.\n=========" nil nil))))

  (testing "Settext heading block that's a H1 spanning multiple lines"
    (is (= "<h1>This is a \nheading block spanning multiple lines.</h1>"
           (heading-block/render "This is a \nheading block spanning multiple lines.\n========" nil nil))))

  (testing "Settext heading block that's a H2"
    (is (= "<h2>This is a heading block.</h2>"
           (heading-block/render "This is a heading block.\n---------" nil nil))))

  (testing "Settext heading block that's a H2 spanning multiple lines"
    (is (= "<h2>This is a \nheading block spanning multiple lines.</h2>"
           (heading-block/render "This is a \nheading block spanning multiple lines.\n--------" nil nil)))))