mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-03-25 09:05:47 +00:00
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.
52 lines
1.6 KiB
Ruby
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
|