This commit is contained in:
2 files changed
+7
-7
No files matched your search
@@ -103,10 +103,9 @@ object GatewayContract {
|
||||
}
|
||||
}
|
||||
|
||||
val missingRequired =
|
||||
required.filter { reqName ->
|
||||
reqName !in elementNames && reqName != "profile"
|
||||
}
|
||||
// No exemptions: decorate() skips injection when no profile is active, so a required `profile`
|
||||
// must be declared like any other required param.
|
||||
val missingRequired = required.filter { it !in elementNames }
|
||||
for (missing in missingRequired) {
|
||||
problems += "$method: missing required param '$missing'"
|
||||
}
|
||||
|
||||
+4
-3
@@ -94,13 +94,14 @@ class ParamsDescriptorCheckTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun omittingProfilePassesEvenWhenRequiredBySchema() {
|
||||
// bot_relay.deliver has required: ["profile", "message"]
|
||||
fun omittingRequiredProfileIsRejectedLikeAnyRequiredParam() {
|
||||
// bot_relay.deliver has required: ["profile", "message"]. Profile injection is skipped when no
|
||||
// profile is active, so `profile` gets no special treatment: the params class must declare it.
|
||||
val problems =
|
||||
GatewayContract.paramsDescriptorProblems(
|
||||
"bot_relay.deliver",
|
||||
DeliverMissingProfileParams.serializer().descriptor,
|
||||
)
|
||||
assertTrue(problems.joinToString("\n"), problems.isEmpty())
|
||||
assertEquals(1, problems.count { "missing required param 'profile'" in it })
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user