Add logging for invalid model errors (#126)
Add logging for invalid model errors Co-authored-by: kolaente <k@knt.li> Reviewed-on: https://kolaente.dev/vikunja/api/pulls/126
This commit is contained in:
135
vendor/github.com/cweill/gotests/internal/render/render.go
generated
vendored
Normal file
135
vendor/github.com/cweill/gotests/internal/render/render.go
generated
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
package render
|
||||
|
||||
//go:generate esc -o bindata/esc.go -pkg=bindata templates
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"path"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/cweill/gotests/internal/models"
|
||||
"github.com/cweill/gotests/internal/render/bindata"
|
||||
)
|
||||
|
||||
const name = "name"
|
||||
|
||||
var (
|
||||
tmpls *template.Template
|
||||
)
|
||||
|
||||
func init() {
|
||||
initEmptyTmpls()
|
||||
for _, name := range bindata.AssetNames() {
|
||||
tmpls = template.Must(tmpls.Parse(bindata.FSMustString(false, name)))
|
||||
}
|
||||
}
|
||||
|
||||
// LoadCustomTemplates allows to load in custom templates from a specified path.
|
||||
func LoadCustomTemplates(dir string) error {
|
||||
initEmptyTmpls()
|
||||
|
||||
files, err := ioutil.ReadDir(dir)
|
||||
if err != nil {
|
||||
return fmt.Errorf("ioutil.ReadDir: %v", err)
|
||||
}
|
||||
|
||||
templateFiles := []string{}
|
||||
for _, f := range files {
|
||||
templateFiles = append(templateFiles, path.Join(dir, f.Name()))
|
||||
}
|
||||
tmpls, err = tmpls.ParseFiles(templateFiles...)
|
||||
if err != nil {
|
||||
return fmt.Errorf("tmpls.ParseFiles: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func initEmptyTmpls() {
|
||||
tmpls = template.New("render").Funcs(map[string]interface{}{
|
||||
"Field": fieldName,
|
||||
"Receiver": receiverName,
|
||||
"Param": parameterName,
|
||||
"Want": wantName,
|
||||
"Got": gotName,
|
||||
})
|
||||
}
|
||||
|
||||
func fieldName(f *models.Field) string {
|
||||
var n string
|
||||
if f.IsNamed() {
|
||||
n = f.Name
|
||||
} else {
|
||||
n = f.Type.String()
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func receiverName(f *models.Receiver) string {
|
||||
var n string
|
||||
if f.IsNamed() {
|
||||
n = f.Name
|
||||
} else {
|
||||
n = f.ShortName()
|
||||
}
|
||||
if n == "name" {
|
||||
// Avoid conflict with test struct's "name" field.
|
||||
n = "n"
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func parameterName(f *models.Field) string {
|
||||
var n string
|
||||
if f.IsNamed() {
|
||||
n = f.Name
|
||||
} else {
|
||||
n = fmt.Sprintf("in%v", f.Index)
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func wantName(f *models.Field) string {
|
||||
var n string
|
||||
if f.IsNamed() {
|
||||
n = "want" + strings.Title(f.Name)
|
||||
} else if f.Index == 0 {
|
||||
n = "want"
|
||||
} else {
|
||||
n = fmt.Sprintf("want%v", f.Index)
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func gotName(f *models.Field) string {
|
||||
var n string
|
||||
if f.IsNamed() {
|
||||
n = "got" + strings.Title(f.Name)
|
||||
} else if f.Index == 0 {
|
||||
n = "got"
|
||||
} else {
|
||||
n = fmt.Sprintf("got%v", f.Index)
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func Header(w io.Writer, h *models.Header) error {
|
||||
if err := tmpls.ExecuteTemplate(w, "header", h); err != nil {
|
||||
return err
|
||||
}
|
||||
_, err := w.Write(h.Code)
|
||||
return err
|
||||
}
|
||||
|
||||
func TestFunction(w io.Writer, f *models.Function, printInputs bool, subtests bool) error {
|
||||
return tmpls.ExecuteTemplate(w, "function", struct {
|
||||
*models.Function
|
||||
PrintInputs bool
|
||||
Subtests bool
|
||||
}{
|
||||
Function: f,
|
||||
PrintInputs: printInputs,
|
||||
Subtests: subtests,
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user