From 5c47b83da6fc7a4c602b7e9c99f83779dd4a5e1c Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Sun, 1 Dec 2019 15:54:54 -0800 Subject: [PATCH] Add more tests and fix a bug --- .../Sources/SiteGenerator/Generator.swift | 2 +- Tests/test-public-subdirs/expected/about.html | 10 ++++++++++ .../test-public-subdirs/expected/images/sjs.png | Bin 0 -> 7948 bytes Tests/test-public-subdirs/expected/index.html | 10 ++++++++++ Tests/test-public-subdirs/in/public/about.md | 1 + .../test-public-subdirs/in/public/images/sjs.png | Bin 0 -> 7948 bytes Tests/test-public-subdirs/in/public/index.md | 1 + Tests/test-public-subdirs/in/site.json | 6 ++++++ Tests/test-public-subdirs/in/templates/site.html | 10 ++++++++++ 9 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Tests/test-public-subdirs/expected/about.html create mode 100644 Tests/test-public-subdirs/expected/images/sjs.png create mode 100644 Tests/test-public-subdirs/expected/index.html create mode 100644 Tests/test-public-subdirs/in/public/about.md create mode 100644 Tests/test-public-subdirs/in/public/images/sjs.png create mode 100644 Tests/test-public-subdirs/in/public/index.md create mode 100644 Tests/test-public-subdirs/in/site.json create mode 100644 Tests/test-public-subdirs/in/templates/site.html diff --git a/SiteGenerator/Sources/SiteGenerator/Generator.swift b/SiteGenerator/Sources/SiteGenerator/Generator.swift index f1ad536..949b2db 100644 --- a/SiteGenerator/Sources/SiteGenerator/Generator.swift +++ b/SiteGenerator/Sources/SiteGenerator/Generator.swift @@ -45,7 +45,7 @@ public final class Generator { fileManager.fileExists(atPath: fileURL.path, isDirectory: &isDir) guard !isDir.boolValue else { try renderPath(fileURL.path, to: targetURL.appendingPathComponent(filename)) - return + continue } // Make sure this path exists so we can write to it. diff --git a/Tests/test-public-subdirs/expected/about.html b/Tests/test-public-subdirs/expected/about.html new file mode 100644 index 0000000..374715e --- /dev/null +++ b/Tests/test-public-subdirs/expected/about.html @@ -0,0 +1,10 @@ + + + + Valar Morghulis + + +

Valar Morghulis

+

i liek milk

+ + diff --git a/Tests/test-public-subdirs/expected/images/sjs.png b/Tests/test-public-subdirs/expected/images/sjs.png new file mode 100644 index 0000000000000000000000000000000000000000..e943b8e8ec8a637fccbe02971407a2289c0d8dcf GIT binary patch literal 7948 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 + + + Valar Morghulis + + +

Valar Morghulis

+

hello world

+ + diff --git a/Tests/test-public-subdirs/in/public/about.md b/Tests/test-public-subdirs/in/public/about.md new file mode 100644 index 0000000..c2b212c --- /dev/null +++ b/Tests/test-public-subdirs/in/public/about.md @@ -0,0 +1 @@ +i liek milk \ No newline at end of file diff --git a/Tests/test-public-subdirs/in/public/images/sjs.png b/Tests/test-public-subdirs/in/public/images/sjs.png new file mode 100644 index 0000000000000000000000000000000000000000..e943b8e8ec8a637fccbe02971407a2289c0d8dcf GIT binary patch literal 7948 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 + + + {{ site.title }} + + +

{{ site.title }}

+ {{ body }} + +