aboutsummaryrefslogtreecommitdiff
path: root/test/momoka_test.gleam
blob: ee712ea1c063c80a6d844640613147b99ac273ea (plain) (blame)
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
import gemtext/gemtext
import gemtext/parse
import gleam/option.{None, Some}
import gleeunit
import gleeunit/should

pub fn main() {
  gleeunit.main()
}

pub fn parse_gemtext_link_with_title_test() {
  parse.parse_gemtext_line(
    "=> https://example.com/ This is a link with a title.",
  )
  |> should.equal(gemtext.Link(
    "https://example.com/",
    Some("This is a link with a title."),
  ))
}

pub fn parse_gemtext_link_without_title_test() {
  parse.parse_gemtext_line("=> https://example.com/")
  |> should.equal(gemtext.Link("https://example.com/", None))
}

pub fn parse_gemtext_blockquote_line_test() {
  parse.parse_gemtext_line("> This is a quote.")
  |> should.equal(gemtext.BlockquoteLine("This is a quote."))
}

pub fn parse_gemtext_list_line_test() {
  parse.parse_gemtext_line("* This is a list item.")
  |> should.equal(gemtext.ListLine("This is a list item."))
}

pub fn parse_gemtext_whitespace_line_test() {
  parse.parse_gemtext_line("")
  |> should.equal(gemtext.Whitespace)
}

pub fn parse_gemtext_heading_level_one_test() {
  parse.parse_gemtext_line("# This is a level one heading.")
  |> should.equal(gemtext.Heading("This is a level one heading.", 1))
}

pub fn parse_gemtext_heading_level_two_test() {
  parse.parse_gemtext_line("## This is a level two heading.")
  |> should.equal(gemtext.Heading("This is a level two heading.", 2))
}

pub fn parse_gemtext_heading_level_three_test() {
  parse.parse_gemtext_line("### This is a level three heading.")
  |> should.equal(gemtext.Heading("This is a level three heading.", 3))
}

pub fn parse_gemtext_preformatted_line_test() {
  parse.parse_gemtext_line("```")
  |> should.equal(gemtext.PreformattedLine("```\n"))
}

pub fn parse_gemtext_preformatted_flattened_block_test() {
  parse.parse_gemtext_line("```\nThis is a preformatted block.\n```")
  |> should.equal(gemtext.PreformattedLine(
    "```\n\nThis is a preformatted block.\n```",
  ))
}