File: test_jekyll-toc.rb

package info (click to toggle)
ruby-jekyll-toc 0.18.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 244 kB
  • sloc: ruby: 912; makefile: 9
file content (58 lines) | stat: -rw-r--r-- 1,289 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
# frozen_string_literal: true

require 'test_helper'

class TestTableOfContentsFilter < Minitest::Test
  include Jekyll::TableOfContentsFilter

  DUMMY_HTML = '<div>Dummy HTML Content</div>'

  def test_toc_only
    @context = disable_toc_context

    assert_empty toc_only(DUMMY_HTML)
  end

  def test_inject_anchors
    @context = disable_toc_context

    assert_equal DUMMY_HTML, inject_anchors(DUMMY_HTML)
  end

  def test_toc
    @context = disable_toc_context

    assert_equal DUMMY_HTML, toc(DUMMY_HTML)
  end

  def test_toc_only2
    @context = enable_toc_context

    assert_equal %(<ul id="toc" class="section-nav">\n</ul>), toc_only(DUMMY_HTML)
  end

  def test_inject_anchors2
    @context = enable_toc_context

    assert_equal DUMMY_HTML, inject_anchors(DUMMY_HTML)
  end

  def test_toc2
    @context = enable_toc_context

    assert_equal %(<ul id="toc" class="section-nav">\n</ul>#{DUMMY_HTML}), toc(DUMMY_HTML)
  end

  private

  def disable_toc_context
    Struct.new(:registers).new({ page: { 'toc' => false } })
  end

  def enable_toc_context
    Struct.new(:registers).new({
                                 page: { 'toc' => true },
                                 site: Struct.new(:config).new({ 'toc' => false })
                               })
  end
end