42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package config_test
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"clintonambulance.com/calculate_negative_points/internal/config"
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
type FakeSicherObject struct{}
|
|
|
|
func (_ FakeSicherObject) SetEnvStyle(_ string) {}
|
|
func (_ FakeSicherObject) LoadEnv(_ string, obj interface{}) error {
|
|
var err error
|
|
|
|
return err
|
|
}
|
|
|
|
var _ = Describe("ConfigTest", func() {
|
|
var version config.Version
|
|
var logger, _ = config.NewLogger(version, os.Stdout, []string{"cmd", "-e", "testEnvironment"})
|
|
shouldNotExit := func(code int) {
|
|
// "Fatal" to mimic os.Exit
|
|
log.Default().Print("exit called with code", code)
|
|
}
|
|
|
|
BeforeEach(func() {
|
|
config.NewSicherObject = func(_ string, _ string) config.SicherObject {
|
|
return FakeSicherObject{}
|
|
}
|
|
version = config.Version{Release: "1.0.0", Commit: "abcdef", Date: "2023-01-01"}
|
|
})
|
|
|
|
It("Errors if the config file is not found", func() {
|
|
argv := []string{"cmd", "-c", "config/no-such-file.yml"}
|
|
_, err := config.Load(version, shouldNotExit, argv, logger)
|
|
Expect(err.Error()).To(Equal("error loading configuration file: open config/no-such-file.yml: no such file or directory"))
|
|
})
|
|
})
|