checkpoint before checking out feature/account-managed-gateway
This commit is contained in:
@@ -14,6 +14,9 @@ class AppConfigTest : FunSpec({
|
||||
config.environment shouldBe Environment.TEST
|
||||
config.apple.clientCredentialsAvailable shouldBe false
|
||||
config.encryption.key.size shouldBe 32
|
||||
config.credits.signupTrial shouldBe 1_000
|
||||
config.credits.referralInviter shouldBe 1_000
|
||||
config.credits.referralInvitee shouldBe 1_000
|
||||
}
|
||||
|
||||
test("production rejects placeholder secrets") {
|
||||
@@ -76,6 +79,43 @@ class AppConfigTest : FunSpec({
|
||||
}.message.orEmpty() shouldContain "bootstrapEnabled requires"
|
||||
}
|
||||
|
||||
test("StoreKit requires an app identifier and dedicated credit product when enabled") {
|
||||
val missingAppId = validProductionConfig().apply {
|
||||
put("app.storeKit.enabled", "true")
|
||||
put("app.storeKit.products", "500tks:500,1500tks:1500,3000tks:3000")
|
||||
}
|
||||
shouldThrow<IllegalArgumentException> {
|
||||
AppConfig.from(missingAppId)
|
||||
}.message.orEmpty() shouldContain "appAppleId is required"
|
||||
|
||||
val enabled = validProductionConfig().apply {
|
||||
put("app.storeKit.enabled", "true")
|
||||
put("app.storeKit.appAppleId", "6781553267")
|
||||
put("app.storeKit.products", "500tks:500,1500tks:1500,3000tks:3000")
|
||||
}
|
||||
|
||||
val storeKit = AppConfig.from(enabled).storeKit
|
||||
storeKit.enabled shouldBe true
|
||||
storeKit.appAppleId shouldBe 6_781_553_267
|
||||
storeKit.products.map { it.productId to it.credits } shouldBe listOf(
|
||||
"500tks" to 500,
|
||||
"1500tks" to 1_500,
|
||||
"3000tks" to 3_000,
|
||||
)
|
||||
}
|
||||
|
||||
test("StoreKit rejects duplicate product mappings") {
|
||||
val config = validProductionConfig().apply {
|
||||
put("app.storeKit.enabled", "true")
|
||||
put("app.storeKit.appAppleId", "6781553267")
|
||||
put("app.storeKit.products", "500tks:500,500tks:3000")
|
||||
}
|
||||
|
||||
shouldThrow<ConfigValidationException> {
|
||||
AppConfig.from(config)
|
||||
}.message.orEmpty() shouldContain "duplicate product IDs"
|
||||
}
|
||||
|
||||
test("production fails fast when Apple signing credentials are missing") {
|
||||
val config = validProductionConfig().apply {
|
||||
put("app.apple.keyId", "")
|
||||
|
||||
Reference in New Issue
Block a user