mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-30 22:39:58 +02:00
commands: Show server error info in browser
The main item in this commit is showing of errors with a file context when running `hugo server`. This can be turned off: `hugo server --disableBrowserError` (can also be set in `config.toml`). But to get there, the error handling in Hugo needed a revision. There are some items left TODO for commits soon to follow, most notable errors in content and config files. Fixes #5284 Fixes #5290 See #5325 See #5324
This commit is contained in:
@@ -18,12 +18,12 @@ import (
|
||||
"encoding/csv"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gohugoio/hugo/deps"
|
||||
_errors "github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// New returns a new instance of the data-namespaced template functions.
|
||||
@@ -59,7 +59,7 @@ func (ns *Namespace) GetCSV(sep string, urlParts ...string) (d [][]string, err e
|
||||
var req *http.Request
|
||||
req, err = http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to create request for getCSV for resource %s: %s", url, err)
|
||||
return nil, _errors.Wrapf(err, "Failed to create request for getCSV for resource %s:", url)
|
||||
}
|
||||
|
||||
req.Header.Add("Accept", "text/csv")
|
||||
@@ -103,7 +103,7 @@ func (ns *Namespace) GetJSON(urlParts ...string) (v interface{}, err error) {
|
||||
var req *http.Request
|
||||
req, err = http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to create request for getJSON resource %s: %s", url, err)
|
||||
return nil, _errors.Wrapf(err, "Failed to create request for getJSON resource %s:", url)
|
||||
}
|
||||
|
||||
req.Header.Add("Accept", "application/json")
|
||||
|
@@ -113,11 +113,11 @@ func TestGetCSV(t *testing.T) {
|
||||
require.NoError(t, err, msg)
|
||||
|
||||
if _, ok := test.expect.(bool); ok {
|
||||
require.Equal(t, 1, int(ns.deps.Log.LogCountForLevelsGreaterThanorEqualTo(jww.LevelError)))
|
||||
require.Equal(t, 1, int(ns.deps.Log.ErrorCounter.Count()))
|
||||
require.Nil(t, got)
|
||||
continue
|
||||
}
|
||||
require.Equal(t, 0, int(ns.deps.Log.LogCountForLevelsGreaterThanorEqualTo(jww.LevelError)))
|
||||
require.Equal(t, 0, int(ns.deps.Log.ErrorCounter.Count()))
|
||||
require.NotNil(t, got, msg)
|
||||
|
||||
assert.EqualValues(t, test.expect, got, msg)
|
||||
@@ -198,14 +198,14 @@ func TestGetJSON(t *testing.T) {
|
||||
continue
|
||||
}
|
||||
|
||||
if errLevel, ok := test.expect.(jww.Threshold); ok {
|
||||
logCount := ns.deps.Log.LogCountForLevelsGreaterThanorEqualTo(errLevel)
|
||||
if errLevel, ok := test.expect.(jww.Threshold); ok && errLevel >= jww.LevelError {
|
||||
logCount := ns.deps.Log.ErrorCounter.Count()
|
||||
require.True(t, logCount >= 1, fmt.Sprintf("got log count %d", logCount))
|
||||
continue
|
||||
}
|
||||
require.NoError(t, err, msg)
|
||||
|
||||
require.Equal(t, 0, int(ns.deps.Log.LogCountForLevelsGreaterThanorEqualTo(jww.LevelError)), msg)
|
||||
require.Equal(t, 0, int(ns.deps.Log.ErrorCounter.Count()), msg)
|
||||
require.NotNil(t, got, msg)
|
||||
|
||||
assert.EqualValues(t, test.expect, got, msg)
|
||||
|
Reference in New Issue
Block a user