diff options
Diffstat (limited to 'target')
-rw-r--r-- | target/file.go | 3 | ||||
-rw-r--r-- | target/file_test.go | 25 |
2 files changed, 28 insertions, 0 deletions
diff --git a/target/file.go b/target/file.go index 29c019f4e..f5ae62db3 100644 --- a/target/file.go +++ b/target/file.go @@ -56,6 +56,9 @@ func (fs *Filesystem) Publish(path string, r io.Reader) (err error) { func (fs *Filesystem) Translate(src string) (dest string, err error) { if src == "/" { + if fs.PublishDir != "" { + return path.Join(fs.PublishDir, "index.html"), nil + } return "index.html", nil } diff --git a/target/file_test.go b/target/file_test.go index 14e47ee6f..ee474c1c4 100644 --- a/target/file_test.go +++ b/target/file_test.go @@ -32,6 +32,31 @@ func TestFileTranslator(t *testing.T) { } } +func TestFileTranslatorBase(t *testing.T) { + tests := []struct { + content string + expected string + }{ + {"/", "a/base/index.html"}, + } + + for _, test := range tests { + f := &Filesystem{PublishDir: "a/base"} + fts := &Filesystem{PublishDir: "a/base/"} + + for _, fs := range []*Filesystem{f, fts} { + dest, err := fs.Translate(test.content) + if err != nil { + t.Fatalf("Translated returned and err: %s", err) + } + + if dest != test.expected { + t.Errorf("Translate expected: %s, got: %s", test.expected, dest) + } + } + } +} + func TestTranslateUglyUrls(t *testing.T) { tests := []struct { content string |