Skip to content

Commit 1b19403

Browse files
authored
Merge pull request #211 from tegonal/improve/err-msg-on-wrong-property
mention the available property names so that one verify/copy
2 parents 29202f4 + abd14b1 commit 1b19403

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

src/main/kotlin/com/tegonal/minimalist/config/impl/MinimalistPropertiesParser.kt

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,30 @@ class MinimalistPropertiesParser {
2121
val key = keyAny as String
2222
val value = valueAny as String
2323

24+
val supportedKeys = mutableListOf(PROFILES_PREFIX)
25+
26+
fun isKey(supportedKey: String) = (key == supportedKey).also {
27+
supportedKeys.add(supportedKey)
28+
}
29+
2430
when {
25-
key == "seed" -> seed = value.toIntOrErrorNotValid(key)
26-
key == "offsetToDecidedOffset" -> offsetToDecidedOffset = value.toIntOrErrorNotValid(key)
31+
isKey("seed") -> seed = value.toIntOrErrorNotValid(key)
32+
isKey("offsetToDecidedOffset") -> offsetToDecidedOffset = value.toIntOrErrorNotValid(key)
2733

28-
key == "maxArgs" -> maxArgs = value.toIntOrErrorNotValid(key)
29-
key == "requestedMinArgs" -> requestedMinArgs = value.toIntOrErrorNotValid(key)
30-
key == "activeArgsRangeDecider" -> activeArgsRangeDecider = value
31-
key == "activeEnv" -> activeEnv = value
32-
key == "defaultProfile" -> defaultProfile = value
34+
isKey("maxArgs") -> maxArgs = value.toIntOrErrorNotValid(key)
35+
isKey("requestedMinArgs") -> requestedMinArgs = value.toIntOrErrorNotValid(key)
36+
isKey("activeArgsRangeDecider") -> activeArgsRangeDecider = value
37+
isKey("activeEnv") -> activeEnv = value
38+
isKey("defaultProfile") -> defaultProfile = value
3339

34-
key == PROFILES -> {
40+
isKey(PROFILES) -> {
3541
if (value == "clear") testProfiles.clear()
3642
else error("don't know how to interpret $value for $key")
3743
}
3844

3945
key.startsWith(PROFILES_PREFIX) -> parseTestProfile(key, value)
4046

41-
42-
else -> throwUnknownProperty(key, value)
47+
else -> throwUnknownProperty(key, value, supportedKeys)
4348
}
4449
}
4550
}
@@ -66,15 +71,19 @@ class MinimalistPropertiesParser {
6671
} else {
6772
val testConfig = when (remainingAfterProfile.substringAfter("$env.")) {
6873
"maxArgs" -> TestConfig(maxArgs = value.toPositiveIntOrErrorNotValid(key))
69-
else -> throwUnknownProperty(key, value)
74+
else -> throwUnknownProperty(key, value, listOf("maxArgs"))
7075
}
71-
testConfigsPerEnv.put(env, testConfig)
76+
testConfigsPerEnv[env] = testConfig
7277
}
7378
}
7479
}
7580

76-
private fun throwUnknownProperty(key: String, value: String): Nothing {
77-
error("Unknown minimalist config property $key with value $value -- if you want to introduce custom config properties, then please open a feature request: $FEATURE_REQUEST_URL&title=custom%20config%20properties")
81+
private fun throwUnknownProperty(key: String, value: String, supportedKeys: List<String>): Nothing {
82+
error(
83+
"Unknown minimalist config property $key with value $value -- if you want to introduce custom config properties, then please open a feature request: $FEATURE_REQUEST_URL&title=custom%20config%20properties\nSupported Keys: ${
84+
supportedKeys.sorted().joinToString(", ")
85+
}"
86+
)
7887
}
7988

8089
companion object {

0 commit comments

Comments
 (0)