Comments (3)
This is doing my head in. The request body
goes through the same processing as response body
, yet when setting matchers in a response body
, everything is all good and dandy. It's not when setting matchers in request body
. Odd.
from pactswift.
Narrowed it down to body
only containing one dict element or more elements of only one type of matcher.
The following is OK ✅:
[
"name": Matcher.SomethingLike("Foo"),
"age": Matcher.IntegerLike(42)
]
The following is NOT OK ❌:
[
"name": Matcher.SomethingLike("Foo"),
"age": Matcher.SomethingLike(42)
]
// or just
[
"name": Matcher.SomethingLike("Foo")
]
A test case for these was not written at MockServiceTests
in PactSwift and PactBuilder is failing to process it properly. Oddly enough, PactBuilderTests do cover testing single Matchers and the tests pass.
from pactswift.
It appears Swift doesn't consider any of PactSwift
's matchers that conform to MatcherRuleExpressible
as a type of MatcherRuleExpressible
if there's only one in the dictionary for body
in either Request
or Response
. Same if Request
or Response
contain multiple matchers (or example generators) of the same type.
This only happens if Response
or Request
is set post Interaction
init (eg: Interaction(...).withRequest(_:)
) If Response
and Request
with same body
as described above are passed into the Interaction
initializer (eg: Interaction(_:response:request:)
) then matchers that conform to MatcherRuleExpressible
are considered of type MatcherRuleExpressible
and all is hunky dory. 🤦♂️
Fixed with 7c7c96c
from pactswift.
Related Issues (20)
- Support Cocoapods along side Carthage and SPM HOT 1
- Question: Is it possible to use generators in requests? HOT 4
- Question: Rest vs GraphQL services HOT 3
- Reporting a vulnerability
- Question: What about Pact Specification v4? HOT 2
- Question: arrayContaining Matcher and the dynamic JSON keys. HOT 7
- Surface interaction mismatches to the test running the validation
- Support matchers and example generators in requests
- Task: Clean up tests and Linux specific code HOT 1
- Task: Unit tests for swift concurrency refactor HOT 4
- Task: Proof of concept using Pact plugins
- Task: Find a way to reduce PactSwiftMockServer repo size HOT 1
- Create new release with concurrency support HOT 3
- Allow to merge with existing pact file HOT 2
- Question: Create PACT for JSON body that contains only a string HOT 4
- Unable to run real device -- Pactconsumer HOT 1
- Unable to run real device — Pactswift HOT 2
- PactSwift how to build on CI HOT 3
- Rules defined on the mock services aren't all written to the generated pact contract. HOT 6
- Feature Request: Add Ability to Pass Custom Header for Verification HOT 14
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pactswift.