mirror of
https://github.com/Dvorinka/Productier.git
synced 2026-06-03 20:13:01 +00:00
first commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
package app
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestValidateStoreRuntimeMode(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
mode string
|
||||
allowInMemory bool
|
||||
expectError bool
|
||||
}{
|
||||
{
|
||||
name: "development allows in-memory store",
|
||||
mode: "development",
|
||||
allowInMemory: false,
|
||||
expectError: false,
|
||||
},
|
||||
{
|
||||
name: "production rejects in-memory store by default",
|
||||
mode: "production",
|
||||
allowInMemory: false,
|
||||
expectError: true,
|
||||
},
|
||||
{
|
||||
name: "non-development can be explicitly overridden",
|
||||
mode: "staging",
|
||||
allowInMemory: true,
|
||||
expectError: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
err := validateStoreRuntimeMode(test.mode, test.allowInMemory)
|
||||
if test.expectError && err == nil {
|
||||
t.Fatalf("expected error for mode=%q allowInMemory=%v", test.mode, test.allowInMemory)
|
||||
}
|
||||
if !test.expectError && err != nil {
|
||||
t.Fatalf("did not expect error for mode=%q allowInMemory=%v: %v", test.mode, test.allowInMemory, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestInMemoryStoreAllowed(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
value string
|
||||
allowed bool
|
||||
}{
|
||||
{name: "empty", value: "", allowed: false},
|
||||
{name: "true", value: "true", allowed: true},
|
||||
{name: "uppercase true", value: "TRUE", allowed: true},
|
||||
{name: "one", value: "1", allowed: true},
|
||||
{name: "yes", value: "yes", allowed: true},
|
||||
{name: "off", value: "off", allowed: false},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
t.Setenv("ALLOW_INMEMORY_STORE", test.value)
|
||||
if got := inMemoryStoreAllowed(); got != test.allowed {
|
||||
t.Fatalf("inMemoryStoreAllowed() = %v, want %v for %q", got, test.allowed, test.value)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user