Kersten Burkhardt
02/26/2025, 8:01 PM{
"request": {
"method": "GET",
"urlPath": "/api/search",
"queryParameters": {
"query": {
"matches": "source=(.*?)\\^target=(.*?)\\^status=1"
}
}
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"jsonBody": {
"result": [
{
"id": "{{ regexExtract request.query.query '=(.*?)\\^' 'ids' }}{{ids.0}}-{{ids.1}}"
}
]
}
}
This test runs successfully:
@Test
public void canExtractSingleRegexMatchWithCircumflex() {
final ResponseDefinition responseDefinition =
transform(
transformer,
mockRequest().url("/api/?q=filter%3Done%5Efilter%3Dtwo%5Esort%3Ddesc"),
aResponse()
.withBody("{\"test\": \"{{regexExtract request.query.q 'filter=(.*?)\\^' 'parts'}}{{#each parts}}{{this}} {{/each}}\"}"));
assertThat(responseDefinition.getBody(), is("{\"test\": \"one two \"}"));
}
But when I send a request against wiremock I get:
[ERROR: Nothing matched =(.*?)\\^]-
I deploy wiremock inside a kubernetes cluster.Kersten Burkhardt
02/26/2025, 8:09 PM[=(.*?)\\^] .Lee Turner
02/27/2025, 9:15 AM/api/search stub ?Kersten Burkhardt
02/27/2025, 9:21 AM/api/search?query=source%3D23456789987654322345678998765432%5Etarget%3D98765432234567899876543223456789%5Estatus%3D1Rafe Arnold
02/27/2025, 10:26 AM"jsonBody" field with a "body" field should fix it.
"body" : "{\"result\": [{\"id\": \"{{ regexExtract request.query.query '=(.*?)\\^' 'ids' }}{{ids.0}}-{{ids.1}}\"}]}"Kersten Burkhardt
02/28/2025, 7:48 AM