mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-03-25 09:05:47 +00:00
67 lines
2.1 KiB
Ruby
67 lines
2.1 KiB
Ruby
require "test_helper"
|
|
require "fileutils"
|
|
require "tmpdir"
|
|
|
|
class Pressa::Posts::PluginTest < Minitest::Test
|
|
def site
|
|
@site ||= Pressa::Site.new(
|
|
author: "Sami Samhuri",
|
|
email: "sami@samhuri.net",
|
|
title: "samhuri.net",
|
|
description: "blog",
|
|
url: "https://samhuri.net"
|
|
)
|
|
end
|
|
|
|
def test_setup_skips_when_posts_directory_does_not_exist
|
|
Dir.mktmpdir do |source_path|
|
|
plugin = Pressa::Posts::Plugin.new
|
|
plugin.setup(site:, source_path:)
|
|
|
|
assert_nil(plugin.posts_by_year)
|
|
end
|
|
end
|
|
|
|
def test_render_skips_when_setup_did_not_load_posts
|
|
Dir.mktmpdir do |target_path|
|
|
plugin = Pressa::Posts::Plugin.new
|
|
plugin.render(site:, target_path:)
|
|
|
|
refute(File.exist?(File.join(target_path, "index.html")))
|
|
refute(File.exist?(File.join(target_path, "feed.json")))
|
|
refute(File.exist?(File.join(target_path, "feed.xml")))
|
|
end
|
|
end
|
|
|
|
def test_setup_and_render_write_post_indexes_and_feeds
|
|
Dir.mktmpdir do |root|
|
|
source_path = File.join(root, "source")
|
|
target_path = File.join(root, "target")
|
|
posts_dir = File.join(source_path, "posts", "2025", "11")
|
|
FileUtils.mkdir_p(posts_dir)
|
|
|
|
File.write(File.join(posts_dir, "shredding.md"), <<~MARKDOWN)
|
|
---
|
|
Title: Shredding in November
|
|
Author: Shaun White
|
|
Date: 5th November, 2025
|
|
Timestamp: 2025-11-05T10:00:00-08:00
|
|
---
|
|
|
|
Had an epic day at Whistler. The powder was deep and the lines were short.
|
|
MARKDOWN
|
|
|
|
plugin = Pressa::Posts::Plugin.new
|
|
plugin.setup(site:, source_path:)
|
|
plugin.render(site:, target_path:)
|
|
|
|
assert(File.exist?(File.join(target_path, "index.html")))
|
|
assert(File.exist?(File.join(target_path, "posts/index.html")))
|
|
assert(File.exist?(File.join(target_path, "posts/2025/index.html")))
|
|
assert(File.exist?(File.join(target_path, "posts/2025/11/index.html")))
|
|
assert(File.exist?(File.join(target_path, "posts/2025/11/shredding/index.html")))
|
|
assert(File.exist?(File.join(target_path, "feed.json")))
|
|
assert(File.exist?(File.join(target_path, "feed.xml")))
|
|
end
|
|
end
|
|
end
|