File: emphasis_test.exs

package info (click to toggle)
elixir-earmark-parser 1.4.44-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,148 kB
  • sloc: makefile: 9
file content (113 lines) | stat: -rw-r--r-- 2,584 bytes parent folder | download
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
defmodule Acceptance.Ast.EmphasisTest do
  use ExUnit.Case, async: true
  import Support.Helpers, only: [as_ast: 1, as_ast: 2]
  import EarmarkAstDsl

  describe "Emphasis" do
    test "important" do
      markdown = "*foo bar*\n"
      ast = p(em("foo bar"))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "imporatant quotes" do
      markdown = "a*\"foo\"*\n"
      ast = p(["a", em("\"foo\"")])
      messages = []

      assert as_ast(markdown, smartypants: false) == {:ok, [ast], messages}
    end

    test "important _" do
      markdown = "_foo bar_\n"
      ast = p(em("foo bar"))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "dont get confused" do
      markdown = "_foo*\n"
      ast = p("_foo*")
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "that should make you smile" do
      markdown = "_foo_bar_baz_\n"
      ast = p(em("foo_bar_baz"))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "stronger" do
      markdown = "**foo bar**\n"
      ast = p(strong("foo bar"))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "stronger insisde" do
      markdown = "foo**bar**\n"
      ast = p(["foo", strong("bar")])
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "stronger together" do
      markdown = "__foo bar__\n"
      ast = p(strong("foo bar"))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "let no evil underscores divide us" do
      markdown = "**foo__bar**\n"
      ast = p(strong("foo__bar"))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "strong **and** stronger" do
      markdown = "*(**foo**)*\n"
      ast = p(em(["(", strong("foo"), ")"]))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "stronger **and** strong" do
      markdown = "**(*foo*)**\n"
      ast = p(strong(["(", em("foo"), ")"]))
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    test "one is not strong enough" do
      markdown = "foo*\n"
      ast = p("foo*")
      messages = []

      assert as_ast(markdown) == {:ok, [ast], messages}
    end

    defp em(content) do
      tag("em", content)
    end

    defp strong(content) do
      tag("strong", content)
    end
  end
end

# SPDX-License-Identifier: Apache-2.0