Skip to content

Commit 1b40b7b

Browse files
committed
Allow passing args for named queries
1 parent 87c5861 commit 1b40b7b

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

preflight-core/preflight-runtime/src/main/kotlin/com/orbitalhq/preflight/dsl/OrbitalSpec.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ abstract class OrbitalSpec(body: OrbitalSpec.() -> Unit, sourceConfig: Preflight
5050
return preflight.schema
5151
}
5252

53-
suspend fun runNamedQueryForStream(queryName: String, stubCustomizer: (StubService) -> Unit = {}):Flow<TypedInstance> =
54-
preflight.runNamedQueryForStream(queryName, stubCustomizer)
55-
suspend fun runNamedQueryForObject(queryName: String, stubCustomizer: (StubService) -> Unit = {}) =
56-
preflight.runNamedQueryForObject(queryName, stubCustomizer)
53+
suspend fun runNamedQueryForStream(queryName: String, arguments: Map<String,Any?> = emptyMap(), stubCustomizer: (StubService) -> Unit = {}):Flow<TypedInstance> =
54+
preflight.runNamedQueryForStream(queryName, arguments, stubCustomizer)
55+
suspend fun runNamedQueryForObject(queryName: String, arguments: Map<String, Any?> = emptyMap(), stubCustomizer: (StubService) -> Unit = {}) =
56+
preflight.runNamedQueryForObject(queryName, arguments, stubCustomizer)
5757

5858
/**
5959
* Executes the query, and returns a raw scalar value (Int, String, Boolean, etc).

preflight-core/preflight-runtime/src/main/kotlin/com/orbitalhq/preflight/dsl/PreflightExtension.kt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ class PreflightExtension(private val sourceConfig: PreflightSourceConfig = FileP
150150
queryForScalar(taxiQl, stubScenariosToCustomizer(stubScenarios.toList()))
151151

152152
suspend fun queryForScalar(taxiQl: String, stubCustomizer: (StubService) -> Unit = {}): Any? {
153-
return query(taxiQl, stubCustomizer)
153+
return query(taxiQl, emptyMap(), stubCustomizer)
154154
.firstRawValue()
155155
}
156156

@@ -159,7 +159,7 @@ class PreflightExtension(private val sourceConfig: PreflightSourceConfig = FileP
159159
queryForObject(taxiQl, stubScenariosToCustomizer(stubScenarios.toList()))
160160

161161
suspend fun queryForObject(taxiQl: String, stubCustomizer: (StubService) -> Unit = {}): Map<String, Any?> {
162-
return query(taxiQl, stubCustomizer)
162+
return query(taxiQl, emptyMap(), stubCustomizer)
163163
.firstRawObject()
164164
}
165165

@@ -170,26 +170,26 @@ class PreflightExtension(private val sourceConfig: PreflightSourceConfig = FileP
170170
taxiQl: String,
171171
stubCustomizer: (StubService) -> Unit = {}
172172
): List<Map<String, Any?>> {
173-
return query(taxiQl, stubCustomizer)
173+
return query(taxiQl, emptyMap(), stubCustomizer)
174174
.rawObjects()
175175
}
176176

177-
suspend fun queryForTypedInstance(taxiQl: String, vararg stubScenarios: StubScenario) =
177+
suspend fun queryForTypedInstance(taxiQl: String, vararg stubScenarios: StubScenario) =
178178
queryForTypedInstance(taxiQl, stubScenariosToCustomizer(stubScenarios.toList()))
179179

180-
suspend fun queryForTypedInstance(taxiQl: String, stubCustomizer: (StubService) -> Unit = {}): TypedInstance {
181-
return query(taxiQl, stubCustomizer)
180+
suspend fun queryForTypedInstance(taxiQl: String, stubCustomizer: (StubService) -> Unit = {}): TypedInstance {
181+
return query(taxiQl, emptyMap(), stubCustomizer)
182182
.firstTypedInstace()
183183
}
184184

185-
suspend fun runNamedQueryForObject(queryName: String, stubCustomizer: (StubService) -> Unit = {}) =
186-
runNamedQuery(queryName, stubCustomizer)
185+
suspend fun runNamedQueryForObject(queryName: String, arguments: Map<String,Any?> = emptyMap(), stubCustomizer: (StubService) -> Unit = {}) =
186+
runNamedQuery(queryName, arguments, stubCustomizer)
187187
.firstTypedInstace()
188188

189-
suspend fun runNamedQueryForStream(queryName: String, stubCustomizer: (StubService) -> Unit = {}) =
190-
runNamedQuery(queryName, stubCustomizer).results
189+
suspend fun runNamedQueryForStream(queryName: String, arguments: Map<String, Any?> = emptyMap(), stubCustomizer: (StubService) -> Unit = {}) =
190+
runNamedQuery(queryName, arguments, stubCustomizer).results
191191

192-
private suspend fun runNamedQuery(queryName: String, stubCustomizer: (StubService) -> Unit = {}): QueryResult {
192+
private suspend fun runNamedQuery(queryName: String, arguments: Map<String,Any?>, stubCustomizer: (StubService) -> Unit = {}): QueryResult {
193193
val (orbital) = orbital()
194194
val savedQuery = orbital.schema.queries.singleOrNull {
195195
it.name.parameterizedName == queryName || it.name.name == queryName
@@ -198,10 +198,10 @@ class PreflightExtension(private val sourceConfig: PreflightSourceConfig = FileP
198198
fail("No query named $queryName was found")
199199
}
200200
val taxiQl = savedQuery.sources.joinToString("\n") { it.content }
201-
return query(taxiQl, stubCustomizer)
201+
return query(taxiQl, arguments, stubCustomizer)
202202
}
203203

204-
private suspend fun query(taxiQl: String, stubCustomizer: (StubService) -> Unit = {}): QueryResult {
204+
private suspend fun query(taxiQl: String, arguments: Map<String,Any?>, stubCustomizer: (StubService) -> Unit = {}): QueryResult {
205205
val (orbital, stub) = orbital()
206206
stubCustomizer(stub)
207207
val testContext = coroutineContext[PreflightTestCaseKey]
@@ -210,7 +210,7 @@ class PreflightExtension(private val sourceConfig: PreflightSourceConfig = FileP
210210
} else {
211211
println("A test is executing without a context - this shouldn't happen")
212212
}
213-
return orbital.query(taxiQl)
213+
return orbital.query(taxiQl, arguments = arguments)
214214
}
215215

216216
override suspend fun intercept(testCase: TestCase, execute: suspend (TestCase) -> TestResult): TestResult {

0 commit comments

Comments
 (0)