Skip to content

Commit c99ad82

Browse files
authored
feat: add tests for boolean operators in JMESPath (#923)
1 parent 73a9fd4 commit c99ad82

File tree

3 files changed

+68
-1
lines changed

3 files changed

+68
-1
lines changed

codegen/smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/rendering/waiters/KotlinJmespathExpressionVisitor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ class KotlinJmespathExpressionVisitor(
287287
writer.addImport(RuntimeTypes.Core.Utils.truthiness)
288288

289289
val left = acceptSubexpression(expression.left)
290-
val leftTruthinessName = addTempVar("${left.identifier}Truthiness", "truthiness($${left.identifier})")
290+
val leftTruthinessName = addTempVar("${left.identifier}Truthiness", "truthiness(${left.identifier})")
291291

292292
val right = acceptSubexpression(expression.right)
293293

tests/codegen/waiter-tests/model/waiter-operations.smithy

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,50 @@ service WaitersTestService {
193193
]
194194
},
195195

196+
// comparators
197+
AndEquals: {
198+
acceptors: [
199+
{
200+
state: "success",
201+
matcher: {
202+
output: {
203+
path: "lists.booleans[0] && lists.booleans[1]",
204+
expected: "true",
205+
comparator: "booleanEquals"
206+
}
207+
}
208+
}
209+
]
210+
},
211+
OrEquals: {
212+
acceptors: [
213+
{
214+
state: "success",
215+
matcher: {
216+
output: {
217+
path: "lists.booleans[0] || lists.booleans[1]",
218+
expected: "false",
219+
comparator: "booleanEquals"
220+
}
221+
}
222+
}
223+
]
224+
},
225+
NotEquals: {
226+
acceptors: [
227+
{
228+
state: "success",
229+
matcher: {
230+
output: {
231+
path: "!(primitives.boolean)",
232+
expected: "true",
233+
comparator: "booleanEquals"
234+
}
235+
}
236+
}
237+
]
238+
},
239+
196240
// list indexing
197241
BooleanListIndexZeroEquals: {
198242
acceptors: [

tests/codegen/waiter-tests/src/test/kotlin/com/test/WaiterTest.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,29 @@ class WaiterTest {
108108
GetEntityResponse { primitives = EntityPrimitives { intEnum = IntEnum.One } },
109109
)
110110

111+
// comparators
112+
@Test fun testAndEquals() = successTest(
113+
WaitersTestClient::waitUntilAndEquals,
114+
GetEntityResponse { lists = EntityLists { booleans = listOf(false, false) } },
115+
GetEntityResponse { lists = EntityLists { booleans = listOf(false, true) } },
116+
GetEntityResponse { lists = EntityLists { booleans = listOf(true, false) } },
117+
GetEntityResponse { lists = EntityLists { booleans = listOf(true, true) } },
118+
)
119+
120+
@Test fun testOrEquals() = successTest(
121+
WaitersTestClient::waitUntilOrEquals,
122+
GetEntityResponse { lists = EntityLists { booleans = listOf(true, true) } },
123+
GetEntityResponse { lists = EntityLists { booleans = listOf(true, false) } },
124+
GetEntityResponse { lists = EntityLists { booleans = listOf(false, true) } },
125+
GetEntityResponse { lists = EntityLists { booleans = listOf(false, false) } },
126+
)
127+
128+
@Test fun testNotEquals() = successTest(
129+
WaitersTestClient::waitUntilNotEquals,
130+
GetEntityResponse { primitives = EntityPrimitives { boolean = true } },
131+
GetEntityResponse { primitives = EntityPrimitives { boolean = false } },
132+
)
133+
111134
// list indexing
112135
@Test fun testBooleanListIndexZeroEquals() = successTest(
113136
WaitersTestClient::waitUntilBooleanListIndexZeroEquals,

0 commit comments

Comments
 (0)