summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-02-01 08:40:53 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-02-01 08:40:53 +0100
commit59d87044a4146f578b92b3d67b46660212940912 (patch)
treeb3e8c5d12ae4a2f7fa6fe03d839ad96dfd9c4300 /commands
parent3244cb3b31f8f8c39d9dfa82bc01fb2d6db59257 (diff)
commands: Add test for --configDir
See #5662
Diffstat (limited to 'commands')
-rw-r--r--commands/commands_test.go30
-rw-r--r--commands/hugo_test.go52
-rw-r--r--commands/server_test.go2
3 files changed, 76 insertions, 8 deletions
diff --git a/commands/commands_test.go b/commands/commands_test.go
index 57c9d6005..2e8b99dc4 100644
--- a/commands/commands_test.go
+++ b/commands/commands_test.go
@@ -30,7 +30,7 @@ func TestExecute(t *testing.T) {
assert := require.New(t)
- dir, err := createSimpleTestSite(t)
+ dir, err := createSimpleTestSite(t, testSiteConfig{})
assert.NoError(err)
defer func() {
@@ -140,7 +140,7 @@ func TestCommandsExecute(t *testing.T) {
assert := require.New(t)
- dir, err := createSimpleTestSite(t)
+ dir, err := createSimpleTestSite(t, testSiteConfig{})
assert.NoError(err)
dirOut, err := ioutil.TempDir("", "hugo-cli-out")
@@ -204,21 +204,37 @@ func TestCommandsExecute(t *testing.T) {
}
-func createSimpleTestSite(t *testing.T) (string, error) {
+type testSiteConfig struct {
+ configTOML string
+ contentDir string
+}
+
+func createSimpleTestSite(t *testing.T, cfg testSiteConfig) (string, error) {
d, e := ioutil.TempDir("", "hugo-cli")
if e != nil {
return "", e
}
- // Just the basic. These are for CLI tests, not site testing.
- writeFile(t, filepath.Join(d, "config.toml"), `
+ cfgStr := `
baseURL = "https://example.org"
title = "Hugo Commands"
-`)
+`
+
+ contentDir := "content"
+
+ if cfg.configTOML != "" {
+ cfgStr = cfg.configTOML
+ }
+ if cfg.contentDir != "" {
+ contentDir = cfg.contentDir
+ }
+
+ // Just the basic. These are for CLI tests, not site testing.
+ writeFile(t, filepath.Join(d, "config.toml"), cfgStr)
- writeFile(t, filepath.Join(d, "content", "p1.md"), `
+ writeFile(t, filepath.Join(d, contentDir, "p1.md"), `
---
title: "P1"
weight: 1
diff --git a/commands/hugo_test.go b/commands/hugo_test.go
new file mode 100644
index 000000000..db6961b66
--- /dev/null
+++ b/commands/hugo_test.go
@@ -0,0 +1,52 @@
+// Copyright 2019 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package commands
+
+import (
+ "os"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+)
+
+// Issue #5662
+func TestHugoWithContentDirOverride(t *testing.T) {
+ assert := require.New(t)
+
+ hugoCmd := newCommandsBuilder().addAll().build()
+ cmd := hugoCmd.getCommand()
+
+ contentDir := "contentOverride"
+
+ cfgStr := `
+
+baseURL = "https://example.org"
+title = "Hugo Commands"
+
+contentDir = "thisdoesnotexist"
+
+`
+ dir, err := createSimpleTestSite(t, testSiteConfig{configTOML: cfgStr, contentDir: contentDir})
+ assert.NoError(err)
+
+ defer func() {
+ os.RemoveAll(dir)
+ }()
+
+ cmd.SetArgs([]string{"-s=" + dir, "-c=" + contentDir})
+
+ _, err = cmd.ExecuteC()
+ assert.NoError(err)
+
+}
diff --git a/commands/server_test.go b/commands/server_test.go
index 53a240145..acee19cb8 100644
--- a/commands/server_test.go
+++ b/commands/server_test.go
@@ -34,7 +34,7 @@ func TestServer(t *testing.T) {
t.Skip("Skip server test on appveyor")
}
assert := require.New(t)
- dir, err := createSimpleTestSite(t)
+ dir, err := createSimpleTestSite(t, testSiteConfig{})
assert.NoError(err)
// Let us hope that this port is available on all systems ...