From 59d87044a4146f578b92b3d67b46660212940912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 1 Feb 2019 08:40:53 +0100 Subject: [PATCH] commands: Add test for --configDir See #5662 --- commands/commands_test.go | 30 ++++++++++++++++------ commands/hugo_test.go | 52 +++++++++++++++++++++++++++++++++++++++ commands/server_test.go | 2 +- 3 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 commands/hugo_test.go 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" -`) +` - writeFile(t, filepath.Join(d, "content", "p1.md"), ` + 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, 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 ...