QueryMismatch: Unable to match ["sub"] using Include("sub")
Expected: ["sub"]
Actual: ["substring"]
Parameter: $.item])"
QueryMismatch: Unable to match ["sub"] using Include("sub")
Expected: ["sub"]
Actual: ["substring"]
Parameter: $.item])"
...
RefCell {
value: PactHandleInner {
pact: V4Pact {
consumer: Consumer { name: "Consumer" },
provider: Provider { name: "Provider" },
interactions: [
SynchronousHttp {
id: None,
key: None,
description: "an interaction with query item matcher 'includes'",
provider_states: [],
request: HttpRequest {
method: "GET",
path: "/interaction",
query: Some({"item": [Some("sub")]}),
headers: None,
body: Missing,
matching_rules: MatchingRules {
rules: {
PATH: MatchingRuleCategory { name: PATH, rules: {} },
QUERY: MatchingRuleCategory { name: QUERY, rules: {
DocPath {
path_tokens: [Root, Field("item")],
expr: "$.item"
}:
RuleList {
rules: [Include("sub")],
rule_logic: And,
cascaded: false
}
}
}
}
},
generators: Generators { categories: {} } },
response: HttpResponse {
status: 200,
headers: None,
body: Missing,
matching_rules: MatchingRules { rules: {} },
generators: Generators { categories: {} } },
comments: {},
pending: false,
plugin_config: {},
interaction_markup: InteractionMarkup { markup: "", markup_type: "" },
transport: None
}
],
metadata: {
"namespace1": Object {"name1": String("value1")},
"namespace2": Object {"name2": String("value2")},
"pactRust": Object {"ffi": String("0.4.25")}
},
plugin_data: []
},
mock_server_started: true,
specification_version: V4
}
}
...
----------------------------------------------------------------------------------------
method: GET
path: /interaction
query: Some({"item": [Some("substring")]})
headers: Some({"accept-language": ["en-AU", "en;q=0.9"], "user-agent": ["xctest/23600 CFNetwork/1568.300.101 Darwin/24.2.0"], "host": ["127.0.0.1:4658"], "accept-encoding": ["gzip", "deflate"], "connection": ["keep-alive"], "accept": ["*/*"]})
body: Empty
----------------------------------------------------------------------------------------
...
QueryMismatch: Unable to match ["sub"] using Include("sub")
Expected: ["sub"]
Actual: ["substring"]
Parameter: $.item])"
...
🌎 Environment
pact_ffi0.4.25v3,v4💬 Description
Setting up unit tests for
PactSwiftverifying various query parameter usage forIncludematcher type.🦶 Reproduction Steps
Steps to reproduce the behaviour:
"{\"pact:matcher:type\":\"include\",\"value\":\"sub\"}"GET /endpoint?item=substring,🤔 Expected Results
Pact test should succeed when
GETrequest’s query parameters’ value contains the substring defined inIncludematcher.😲 Actual Results
Pact test fails stating:
🌳 Logs
📄 Stack Traces
See attached
query-param-include-matcher-issue.logfor fullstandardOut: .tracelog:query-param-include-matcher-issue.log
🤝 Relationships