github.com/kovansky/hugo@v0.92.3-0.20220224232819-63076e4ff19f/helpers/testhelpers_test.go (about) 1 package helpers 2 3 import ( 4 "github.com/gohugoio/hugo/common/loggers" 5 "github.com/gohugoio/hugo/config" 6 "github.com/spf13/afero" 7 8 "github.com/gohugoio/hugo/hugofs" 9 "github.com/gohugoio/hugo/langs" 10 "github.com/gohugoio/hugo/modules" 11 ) 12 13 func newTestPathSpec(fs *hugofs.Fs, v config.Provider) *PathSpec { 14 l := langs.NewDefaultLanguage(v) 15 ps, _ := NewPathSpec(fs, l, nil) 16 return ps 17 } 18 19 func newTestDefaultPathSpec(configKeyValues ...interface{}) *PathSpec { 20 v := config.New() 21 fs := hugofs.NewMem(v) 22 cfg := newTestCfg() 23 24 for i := 0; i < len(configKeyValues); i += 2 { 25 cfg.Set(configKeyValues[i].(string), configKeyValues[i+1]) 26 } 27 return newTestPathSpec(fs, cfg) 28 } 29 30 func newTestCfg() config.Provider { 31 v := config.New() 32 v.Set("contentDir", "content") 33 v.Set("dataDir", "data") 34 v.Set("i18nDir", "i18n") 35 v.Set("layoutDir", "layouts") 36 v.Set("assetDir", "assets") 37 v.Set("resourceDir", "resources") 38 v.Set("publishDir", "public") 39 v.Set("archetypeDir", "archetypes") 40 langs.LoadLanguageSettings(v, nil) 41 langs.LoadLanguageSettings(v, nil) 42 mod, err := modules.CreateProjectModule(v) 43 if err != nil { 44 panic(err) 45 } 46 v.Set("allModules", modules.Modules{mod}) 47 48 return v 49 } 50 51 func newTestContentSpec() *ContentSpec { 52 v := config.New() 53 spec, err := NewContentSpec(v, loggers.NewErrorLogger(), afero.NewMemMapFs(), nil) 54 if err != nil { 55 panic(err) 56 } 57 return spec 58 }