File: test_post_reader.rb

package info (click to toggle)
jekyll 4.3.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,356 kB
  • sloc: ruby: 16,765; javascript: 1,455; sh: 214; xml: 29; makefile: 9
file content (42 lines) | stat: -rw-r--r-- 1,274 bytes parent folder | download | duplicates (3)
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
# frozen_string_literal: true

require "helper"

class TestPostReader < JekyllUnitTest
  context "#read_publishable" do
    setup do
      @site = Site.new(site_configuration)
      @post_reader = PostReader.new(@site)
      @dir = ""
      @magic_dir = "_posts"
      @matcher = Document::DATE_FILENAME_MATCHER
    end

    should "skip unprocessable documents" do
      all_file_names = all_documents.collect(&:basename)
      processed_file_names = processed_documents.collect(&:basename)

      actual_skipped_file_names = all_file_names - processed_file_names

      expected_skipped_file_names = [
        "2008-02-02-not-published.markdown",
        "2008-02-03-wrong-extension.yml",
      ]

      skipped_file_names_difference = expected_skipped_file_names - actual_skipped_file_names

      assert expected_skipped_file_names.count.positive?,
             "There should be at least one document expected to be skipped"
      assert_empty skipped_file_names_difference,
                   "The skipped documents (expected/actual) should be congruent (= empty array)"
    end
  end

  def all_documents
    @post_reader.read_content(@dir, @magic_dir, @matcher)
  end

  def processed_documents
    @post_reader.read_publishable(@dir, @magic_dir, @matcher)
  end
end