From dcb5743423c2826ea8e512b619d0931809867549 Mon Sep 17 00:00:00 2001 From: Thomas Freudenberg Date: Fri, 8 Jul 2016 21:42:00 +0200 Subject: [PATCH] created failing unit test --- .../Templating/Jekyll/LiquidEngineTests.cs | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/src/Pretzel.Tests/Templating/Jekyll/LiquidEngineTests.cs b/src/Pretzel.Tests/Templating/Jekyll/LiquidEngineTests.cs index d6f5a4559..5b20ac865 100644 --- a/src/Pretzel.Tests/Templating/Jekyll/LiquidEngineTests.cs +++ b/src/Pretzel.Tests/Templating/Jekyll/LiquidEngineTests.cs @@ -2243,5 +2243,72 @@ public override ITag CreateTag() } } } + + public class Missing_post_frontmatter_when_paginating : BakingEnvironment + { + private const string TemplateContents = "{{ page.title }}{{ content }}"; + private const string PostContents = @"--- + layout: default + title: 'Post {0}' + customfield: '{0}' +--- +## Hello World!"; + private const string IndexContents = @"--- + layout: default + paginate: 1 + title: 'A different title' +--- +{% for post in paginator.posts %} + {{ post.title }}-{{ post.customfield }} +{% endfor %} +"; + private const string ExpectedFileContents = "A different title Post {0}-{0}"; + + public override LiquidEngine Given() + { + return new LiquidEngine(); + } + + public override void When() + { + FileSystem.AddFile(@"C:\website\_layouts\default.html", new MockFileData(TemplateContents)); + FileSystem.AddFile(@"C:\website\index.html", new MockFileData(IndexContents)); + + for (var i = 1; i <= 5; i++) + { + FileSystem.AddFile(String.Format(@"C:\website\_posts\2012-02-0{0}-p{0}.md", i), new MockFileData(String.Format(PostContents, i))); + } + + var generator = GetSiteContextGenerator(FileSystem); + var context = generator.BuildContext(@"C:\website\", @"C:\website\_site", false); + Subject.FileSystem = FileSystem; + Subject.Process(context); + } + + [Fact] + public void Four_Pages_Should_Be_Generated() + { + for (var i = 2; i <= 5; i++) + { + var fileName = String.Format(@"C:\website\_site\page\{0}\index.html", i); + var expectedContents = string.Format(ExpectedFileContents, 6 - i); + Assert.Equal(expectedContents, FileSystem.File.ReadAllText(fileName).RemoveWhiteSpace()); + } + } + + [Fact] + public void Page1_Is_Not_Generated() + { + Assert.False(FileSystem.File.Exists(@"C:\website\_site\page\1\index.html")); + } + + [Fact] + public void But_Index_Is_Generated() + { + var expectedContents = string.Format(ExpectedFileContents, 5); + Assert.Equal(expectedContents, FileSystem.File.ReadAllText(@"C:\website\_site\index.html").RemoveWhiteSpace()); + } + } + } }