mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-04 10:34:55 +02:00
7b302d8c29
Afero is a package that lets you mock out a filesystem with an in-memory filesystem. It allows us to easily create the files required for a given test without worrying about a cleanup step or different tests tripping on eachother when run in parallel. Later on I'll standardise on using afero over the vanilla os package
41 lines
977 B
Go
41 lines
977 B
Go
package utils
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/jesseduffield/lazygit/pkg/common"
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
"github.com/jesseduffield/lazygit/pkg/i18n"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/spf13/afero"
|
|
)
|
|
|
|
// NewDummyLog creates a new dummy Log for testing
|
|
func NewDummyLog() *logrus.Entry {
|
|
log := logrus.New()
|
|
log.Out = io.Discard
|
|
return log.WithField("test", "test")
|
|
}
|
|
|
|
func NewDummyCommon() *common.Common {
|
|
tr := i18n.EnglishTranslationSet()
|
|
return &common.Common{
|
|
Log: NewDummyLog(),
|
|
Tr: &tr,
|
|
UserConfig: config.GetDefaultConfig(),
|
|
Fs: afero.NewOsFs(),
|
|
}
|
|
}
|
|
|
|
func NewDummyCommonWithUserConfig(userConfig *config.UserConfig) *common.Common {
|
|
tr := i18n.EnglishTranslationSet()
|
|
return &common.Common{
|
|
Log: NewDummyLog(),
|
|
Tr: &tr,
|
|
UserConfig: userConfig,
|
|
// TODO: remove dependency on actual filesystem in tests and switch to using
|
|
// in-memory for everything
|
|
Fs: afero.NewOsFs(),
|
|
}
|
|
}
|