Sha256: 55c065215b2eac1c2d709d89773b79888ca49f666e7b0342893ebebce7a9521d

Contents?: true

Size: 2 KB

Versions: 27

Compression:

Stored size: 2 KB

Contents

class Nanoc::Extra::Checking::Checks::StaleTest < Nanoc::TestCase
  def check_class
    Nanoc::Extra::Checking::Checks::Stale
  end

  def calc_issues
    site = Nanoc::Int::SiteLoader.new.new_from_cwd
    runner = Nanoc::Extra::Checking::Runner.new(site)
    runner.run_checks([check_class])
  end

  def test_run_ok
    with_site do |_site|
      assert Dir['content/*'].empty?
      assert Dir['output/*'].empty?

      # Empty
      FileUtils.mkdir_p('output')
      assert calc_issues.empty?

      # One OK file
      File.open('content/index.html', 'w') { |io| io.write('stuff') }
      File.open('output/index.html', 'w') { |io| io.write('stuff') }
      assert calc_issues.empty?
    end
  end

  def test_run_error
    with_site do |_site|
      assert Dir['content/*'].empty?
      assert Dir['output/*'].empty?

      File.open('content/index.html', 'w') { |io| io.write('stuff') }
      File.open('output/WRONG.html', 'w') { |io| io.write('stuff') }
      assert_equal 1, calc_issues.count
      issue = calc_issues.to_a[0]
      assert_equal 'file without matching item', issue.description
      assert_equal 'output/WRONG.html', issue.subject
    end
  end

  def test_run_excluded
    with_site do |_site|
      assert Dir['content/*'].empty?
      assert Dir['output/*'].empty?

      File.open('nanoc.yaml', 'w') { |io| io.write "string_pattern_type: legacy\nprune:\n  exclude: [ 'excluded.html' ]" }
      File.open('content/index.html', 'w') { |io| io.write('stuff') }
      File.open('output/excluded.html', 'w') { |io| io.write('stuff') }
      assert calc_issues.empty?
    end
  end

  def test_run_excluded_with_broken_config
    with_site do |_site|
      assert Dir['content/*'].empty?
      assert Dir['output/*'].empty?

      File.open('nanoc.yaml', 'w') { |io| io.write "string_pattern_type: legacy\nprune:\n  blah: meh" }
      File.open('content/index.html', 'w') { |io| io.write('stuff') }
      File.open('output/excluded.html', 'w') { |io| io.write('stuff') }
      refute calc_issues.empty?
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
nanoc-4.3.7 test/extra/checking/checks/test_stale.rb
nanoc-4.3.6 test/extra/checking/checks/test_stale.rb
nanoc-4.3.5 test/extra/checking/checks/test_stale.rb
nanoc-4.3.4 test/extra/checking/checks/test_stale.rb
nanoc-4.3.3 test/extra/checking/checks/test_stale.rb
nanoc-4.3.2 test/extra/checking/checks/test_stale.rb
nanoc-4.3.1 test/extra/checking/checks/test_stale.rb
nanoc-4.3.0 test/extra/checking/checks/test_stale.rb
nanoc-4.2.4 test/extra/checking/checks/test_stale.rb
nanoc-4.2.3 test/extra/checking/checks/test_stale.rb
nanoc-4.2.2 test/extra/checking/checks/test_stale.rb
nanoc-4.2.1 test/extra/checking/checks/test_stale.rb
nanoc-4.2.0 test/extra/checking/checks/test_stale.rb
nanoc-4.1.6 test/extra/checking/checks/test_stale.rb
nanoc-4.2.0b1 test/extra/checking/checks/test_stale.rb
nanoc-4.1.5 test/extra/checking/checks/test_stale.rb
nanoc-4.1.4 test/extra/checking/checks/test_stale.rb
nanoc-4.1.3 test/extra/checking/checks/test_stale.rb
nanoc-4.1.2 test/extra/checking/checks/test_stale.rb
nanoc-4.1.1 test/extra/checking/checks/test_stale.rb