migration
This commit is contained in:
46
PediFoodsTests/FeatureFlagsStateTests.swift
Normal file
46
PediFoodsTests/FeatureFlagsStateTests.swift
Normal file
@@ -0,0 +1,46 @@
|
||||
import Testing
|
||||
@testable import PediFoods
|
||||
|
||||
@Test("FeatureFlagValue.boolValue passes through a boolean case directly")
|
||||
func featureFlagValueBoolValuePassesThroughBoolean() {
|
||||
#expect(FeatureFlagValue.boolean(true).boolValue == true)
|
||||
#expect(FeatureFlagValue.boolean(false).boolValue == false)
|
||||
}
|
||||
|
||||
@Test("FeatureFlagValue.boolValue treats 'on'/'true' text as true, case-insensitively")
|
||||
func featureFlagValueBoolValueTextVariants() {
|
||||
#expect(FeatureFlagValue.text("on").boolValue == true)
|
||||
#expect(FeatureFlagValue.text("ON").boolValue == true)
|
||||
#expect(FeatureFlagValue.text("true").boolValue == true)
|
||||
#expect(FeatureFlagValue.text("off").boolValue == false)
|
||||
#expect(FeatureFlagValue.text("something-else").boolValue == false)
|
||||
}
|
||||
|
||||
@Test("FeatureFlagsState.isEnabled prefers the raw flag over the mapped value")
|
||||
func featureFlagsStateIsEnabledPrefersRaw() {
|
||||
var state = FeatureFlagsState()
|
||||
state.raw["promo"] = FeatureControlRawFlag(enabled: true, variant: "on", payload: nil, reason: nil)
|
||||
state.values["promo"] = .boolean(false)
|
||||
#expect(state.isEnabled("promo") == true)
|
||||
}
|
||||
|
||||
@Test("FeatureFlagsState.isEnabled treats a raw flag as enabled when its variant is 'on' even if enabled is false")
|
||||
func featureFlagsStateIsEnabledRawVariantOn() {
|
||||
var state = FeatureFlagsState()
|
||||
state.raw["promo"] = FeatureControlRawFlag(enabled: false, variant: "on", payload: nil, reason: nil)
|
||||
#expect(state.isEnabled("promo") == true)
|
||||
}
|
||||
|
||||
@Test("FeatureFlagsState.isEnabled falls back to the mapped value when no raw flag exists")
|
||||
func featureFlagsStateIsEnabledFallsBackToValues() {
|
||||
var state = FeatureFlagsState()
|
||||
state.values["promo"] = .text("on")
|
||||
#expect(state.isEnabled("promo") == true)
|
||||
}
|
||||
|
||||
@Test("FeatureFlagsState.isEnabled falls back to the given default when the key is unknown")
|
||||
func featureFlagsStateIsEnabledFallsBackToDefault() {
|
||||
let state = FeatureFlagsState()
|
||||
#expect(state.isEnabled("unknown-key") == false)
|
||||
#expect(state.isEnabled("unknown-key", default: true) == true)
|
||||
}
|
||||
Reference in New Issue
Block a user