mirror of
https://github.com/Luzifer/mondash.git
synced 2024-11-15 02:42:41 +00:00
88 lines
1.8 KiB
Go
88 lines
1.8 KiB
Go
|
package rconfig
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
|
||
|
. "github.com/onsi/ginkgo"
|
||
|
. "github.com/onsi/gomega"
|
||
|
)
|
||
|
|
||
|
var _ = Describe("Precedence", func() {
|
||
|
|
||
|
type t struct {
|
||
|
A int `default:"1" vardefault:"a" env:"a" flag:"avar,a" description:"a"`
|
||
|
}
|
||
|
|
||
|
var (
|
||
|
err error
|
||
|
cfg t
|
||
|
args []string
|
||
|
vardefaults map[string]string
|
||
|
)
|
||
|
|
||
|
JustBeforeEach(func() {
|
||
|
cfg = t{}
|
||
|
SetVariableDefaults(vardefaults)
|
||
|
err = parse(&cfg, args)
|
||
|
})
|
||
|
|
||
|
Context("Provided: Flag, Env, Default, VarDefault", func() {
|
||
|
BeforeEach(func() {
|
||
|
args = []string{"-a", "5"}
|
||
|
os.Setenv("a", "8")
|
||
|
vardefaults = map[string]string{
|
||
|
"a": "3",
|
||
|
}
|
||
|
})
|
||
|
|
||
|
It("should not have errored", func() { Expect(err).NotTo(HaveOccurred()) })
|
||
|
It("should have used the flag value", func() {
|
||
|
Expect(cfg.A).To(Equal(5))
|
||
|
})
|
||
|
})
|
||
|
|
||
|
Context("Provided: Env, Default, VarDefault", func() {
|
||
|
BeforeEach(func() {
|
||
|
args = []string{}
|
||
|
os.Setenv("a", "8")
|
||
|
vardefaults = map[string]string{
|
||
|
"a": "3",
|
||
|
}
|
||
|
})
|
||
|
|
||
|
It("should not have errored", func() { Expect(err).NotTo(HaveOccurred()) })
|
||
|
It("should have used the env value", func() {
|
||
|
Expect(cfg.A).To(Equal(8))
|
||
|
})
|
||
|
})
|
||
|
|
||
|
Context("Provided: Default, VarDefault", func() {
|
||
|
BeforeEach(func() {
|
||
|
args = []string{}
|
||
|
os.Unsetenv("a")
|
||
|
vardefaults = map[string]string{
|
||
|
"a": "3",
|
||
|
}
|
||
|
})
|
||
|
|
||
|
It("should not have errored", func() { Expect(err).NotTo(HaveOccurred()) })
|
||
|
It("should have used the vardefault value", func() {
|
||
|
Expect(cfg.A).To(Equal(3))
|
||
|
})
|
||
|
})
|
||
|
|
||
|
Context("Provided: Default", func() {
|
||
|
BeforeEach(func() {
|
||
|
args = []string{}
|
||
|
os.Unsetenv("a")
|
||
|
vardefaults = map[string]string{}
|
||
|
})
|
||
|
|
||
|
It("should not have errored", func() { Expect(err).NotTo(HaveOccurred()) })
|
||
|
It("should have used the default value", func() {
|
||
|
Expect(cfg.A).To(Equal(1))
|
||
|
})
|
||
|
})
|
||
|
|
||
|
})
|