eachLike,
url,
integer,
- regex
+ regex,
+ arrayContaining
} = MatchersV3
describe("Siren Pact test", () => {
provider = new PactV3({
consumer: "Siren Order Provider",
provider: "Siren Order Service",
- port: 9000,
dir: path.resolve(process.cwd(), "pacts")
})
})
it('deletes the first order using the delete action', () => {
provider
+
+ // Get Root Request
.uponReceiving("get root")
.withRequest({
- path: "/",
+ method: "GET",
+ path: "/"
})
.willRespondWith({
status: 200,
'Content-Type': 'application/vnd.siren+json'
},
body: {
- class:[ "representation"],
- links:[{"rel":["orders"], "href": url("http://localhost:9000", ["orders"]) }]
+ class: [ "representation"],
+ links: [{"rel":["orders"], "href": url(["orders"]) }]
}
})
+
+ // Get Orders Request
.uponReceiving("get all orders")
.withRequest({
+ method: "GET",
path: "/orders",
})
.willRespondWith({
links: [
{
"rel": [ "self" ],
- "href": url("http://localhost:9000", ["orders", regex("\\d+", "1234")])
+ "href": url(["orders", regex("\\d+", "1234")])
}
],
- "actions": [
+ "actions": arrayContaining(
{
"name": "update",
"method": "PUT",
- "href": url("http://localhost:9000", ["orders", regex("\\d+", "1234")])
+ "href": url(["orders", regex("\\d+", "1234")])
},
{
"name": "delete",
"method": "DELETE",
- "href": url("http://localhost:9000", ["orders", regex("\\d+", "1234")])
+ "href": url(["orders", regex("\\d+", "1234")])
}
- ]
- }, 2),
+ )
+ }),
links: [
{
rel: [ "self" ],
- href: url("http://localhost:9000", ["orders"])
+ href: url(["orders"])
}
]
}
})
+
+ // Delete Order Request
.uponReceiving("delete order")
.withRequest({
method: "DELETE",