Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions test/collections_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
describe "collections" do
collections.each do |collection|
describe "#{collection} collection" do
it "has valid YAML frontmatter" do
error = yaml_syntax_error_for(collections_dir, collection)
assert_nil error, error
end

unless ENV["AUTOCORRECT_RENAMED_REPOS"] == "1"
it "has a valid name" do
assert valid_collection?(collection), invalid_collection_message(collection)
Expand Down
25 changes: 22 additions & 3 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -235,17 +235,36 @@ def valid_uri_scheme?(scheme)
%w[http https].include?(scheme.downcase)
end

def metadata_for(dir, name)
def frontmatter_for(dir, name)
path = File.join(dir, name, "index.md")
return unless File.file?(path)

parts = File.read(path).split("---", 3)
return unless parts.size >= 2

parts[1]
end

def metadata_for(dir, name)
frontmatter = frontmatter_for(dir, name)
return unless frontmatter

begin
YAML.safe_load(frontmatter)
rescue Psych::SyntaxError
nil
Comment on lines +254 to +255
end
end

def yaml_syntax_error_for(dir, name)
frontmatter = frontmatter_for(dir, name)
return unless frontmatter

begin
YAML.safe_load(parts[1])
YAML.safe_load(frontmatter)
nil
rescue Psych::SyntaxError => error
flunk "invalid YAML: #{error.message}"
"invalid YAML in #{File.join(dir, name, 'index.md')}: #{error.message}"
end
end

Expand Down
5 changes: 5 additions & 0 deletions test/topics_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@

topics.each do |topic|
describe "#{topic} topic" do
it "has valid YAML frontmatter" do
error = yaml_syntax_error_for(topics_dir, topic)
assert_nil error, error
end

it "has a valid name" do
assert valid_topic?(topic), invalid_topic_message(topic)
end
Expand Down