Skip to content

Commit

Permalink
Adds the missing tests for jekyll#2405
Browse files Browse the repository at this point in the history
  • Loading branch information
Jens Nazarenus committed Jun 1, 2014
1 parent d9e69f0 commit 187d31a
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 10 deletions.
4 changes: 4 additions & 0 deletions test/source/_slides/example-slide-1.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: Example slide
layout: slide
---
7 changes: 7 additions & 0 deletions test/source/_slides/example-slide-2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Override title
layout: slide
nested:
test1: override1
test2: override2
---
100 changes: 90 additions & 10 deletions test/test_document.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,41 @@ class TestDocument < Test::Unit::TestCase
context "a document as part of a collection with frontmatter defaults" do
setup do
@site = Site.new(Jekyll.configuration({
"collections" => ["methods"],
"collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{
"scope"=> {"path"=>"", "type"=>"methods"},
"scope"=> {"path"=>"", "type"=>"slides"},
"values"=> {
"nested"=> {
"key"=>"myval",
}
}
}]
}))
@site.process
@document = @site.collections["slides"].docs.first
end

should "know the frontmatter defaults" do
assert_equal({
"title"=>"Example slide",
"layout"=>"slide",
"nested"=> {
"key"=>"myval"
}
}, @document.data)
end
end

context "a document as part of a collection with overriden default values" do
setup do
@site = Site.new(Jekyll.configuration({
"collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{
"scope"=> {"path"=>"", "type"=>"slides"},
"values"=> {
"nested"=> {
"test1"=>"default1",
Expand All @@ -59,25 +89,75 @@ class TestDocument < Test::Unit::TestCase
}]
}))
@site.process
@document = @site.collections["methods"].docs.first
@document = @site.collections["slides"].docs[1]
end

should "know the frontmatter defaults" do
should "override default values in the document frontmatter" do
assert_equal({
"title"=>"Jekyll.configuration",
"title"=>"Override title",
"layout"=>"slide",
"nested"=> {
"test1"=>"default1",
"test2"=>"default1"},
"whatever"=>"foo.bar"
"test1"=>"override1",
"test2"=>"override2"
}
}, @document.data)
end
end

should "overwrite a default value in the document frontmatter" do
context "a document as part of a collection with valid path" do
setup do
@site = Site.new(Jekyll.configuration({
"collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{
"scope"=> {"path"=>"slides", "type"=>"slides"},
"values"=> {
"nested"=> {
"key"=>"value123",
}
}
}]
}))
@site.process
@document = @site.collections["slides"].docs.first
end

should "know the frontmatter defaults" do
assert_equal({
"title"=>"Example slide",
"layout"=>"slide",
"nested"=> {
"key"=>"value123"
}
}, @document.data)
end
end

should "overwrite a nested default value in the document frontmatter" do
context "a document as part of a collection with invalid path" do
setup do
@site = Site.new(Jekyll.configuration({
"collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{
"scope"=> {"path"=>"somepath", "type"=>"slides"},
"values"=> {
"nested"=> {
"key"=>"myval",
}
}
}]
}))
@site.process
@document = @site.collections["slides"].docs.first
end

should "not know the specified frontmatter defaults" do
assert_equal({
"title"=>"Example slide",
"layout"=>"slide"
}, @document.data)
end
end

Expand Down

0 comments on commit 187d31a

Please sign in to comment.