samhuri.net/test/site_generator_test.rb
Sami Samhuri 6eec569358
Rename spec suite to test and remove RSpec-era traces
Move Minitest files from spec/ to test/ and update bake tasks

to discover and run tests from test/**/*_test.rb.

Update README and AGENTS guidance to reference test/ and tests,

and drop the obsolete spec/examples.txt ignore entry.
2026-02-07 21:15:29 -08:00

52 lines
1.6 KiB
Ruby

require "test_helper"
require "fileutils"
require "tmpdir"
class Pressa::SiteGeneratorTest < Minitest::Test
def site
@site ||= Pressa::Site.new(
author: "Sami Samhuri",
email: "sami@samhuri.net",
title: "samhuri.net",
description: "blog",
url: "https://samhuri.net",
plugins: [],
renderers: []
)
end
def test_rejects_a_target_path_that_matches_the_source_path
Dir.mktmpdir do |dir|
FileUtils.mkdir_p(File.join(dir, "public"))
source_file = File.join(dir, "public", "keep.txt")
File.write(source_file, "safe")
generator = Pressa::SiteGenerator.new(site:)
error = assert_raises(ArgumentError) do
generator.generate(source_path: dir, target_path: dir)
end
assert_match(/must not be the same as or contain source_path/, error.message)
assert_equal("safe", File.read(source_file))
end
end
def test_does_not_copy_ignored_dotfiles_from_public
Dir.mktmpdir do |dir|
source_path = File.join(dir, "source")
target_path = File.join(dir, "target")
public_path = File.join(source_path, "public")
FileUtils.mkdir_p(public_path)
File.write(File.join(public_path, ".DS_Store"), "finder cache")
File.write(File.join(public_path, ".gitkeep"), "")
File.write(File.join(public_path, "visible.txt"), "ok")
Pressa::SiteGenerator.new(site:).generate(source_path:, target_path:)
assert(File.exist?(File.join(target_path, "visible.txt")))
refute(File.exist?(File.join(target_path, ".DS_Store")))
refute(File.exist?(File.join(target_path, ".gitkeep")))
end
end
end