Skip to content

Commit

Permalink
Add protobuf-plugin specs to reproduce pact-manifest generation bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ysatarov committed Nov 21, 2024
1 parent 68ff6ab commit 78a2a2a
Show file tree
Hide file tree
Showing 3 changed files with 353 additions and 6 deletions.
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
pact/plugin
pact/standalone
pact/verifier
pacts/
logs/**
getpact.docker-compose.yml
*.so
Expand All @@ -24,4 +23,4 @@ getpact.docker-compose.yml
Gemfile.lock
*.tar.gz
*.gz
*.gem
*.gem
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
{
"consumer": {
"name": "grpc-consumer-ruby"
},
"interactions": [
{
"description": "pact calc 2",
"interactionMarkup": {
"markup": "```protobuf\nmessage AreaResponse {\n repeated float value = 1;\n}\n```\n",
"markupType": "COMMON_MARK"
},
"pending": false,
"pluginConfiguration": {
"protobuf": {
"descriptorKey": "a85dff8f82655a9681aad113575dcfbb",
"service": "Calculator/calculateOne"
}
},
"request": {
"contents": {
"content": "EgoNAABAQBUAAIBA",
"contentType": "application/protobuf;message=ShapeMessage",
"contentTypeHint": "BINARY",
"encoded": "base64"
},
"matchingRules": {
"body": {
"$.rectangle.length": {
"combine": "AND",
"matchers": [
{
"match": "number"
}
]
},
"$.rectangle.width": {
"combine": "AND",
"matchers": [
{
"match": "number"
}
]
}
}
},
"metadata": {
"contentType": "application/protobuf;message=ShapeMessage"
}
},
"response": [
{
"contents": {
"content": "CgQAAEBB",
"contentType": "application/protobuf;message=AreaResponse",
"contentTypeHint": "BINARY",
"encoded": "base64"
},
"matchingRules": {
"body": {
"$.value[0].*": {
"combine": "AND",
"matchers": [
{
"match": "number"
}
]
}
}
},
"metadata": {
"contentType": "application/protobuf;message=AreaResponse"
}
}
],
"transport": "grpc",
"type": "Synchronous/Messages"
},
{
"description": "pact calc error 1",
"interactionMarkup": {
"markup": "```protobuf\nmessage AreaResponse {\n}\n```\n",
"markupType": "COMMON_MARK"
},
"pending": false,
"pluginConfiguration": {
"protobuf": {
"descriptorKey": "a85dff8f82655a9681aad113575dcfbb",
"service": "Calculator/calculateOne"
}
},
"request": {
"contents": {
"content": "EgoNAABAQBUAAIBA",
"contentType": "application/protobuf;message=ShapeMessage",
"contentTypeHint": "BINARY",
"encoded": "base64"
},
"matchingRules": {
"body": {
"$.rectangle.length": {
"combine": "AND",
"matchers": [
{
"match": "number"
}
]
},
"$.rectangle.width": {
"combine": "AND",
"matchers": [
{
"match": "number"
}
]
}
}
},
"metadata": {
"contentType": "application/protobuf;message=ShapeMessage"
}
},
"response": [
{
"contents": {
"content": ""
},
"metadata": {
"contentType": "application/protobuf;message=AreaResponse",
"grpc-message": "Not implemented",
"grpc-status": "UNIMPLEMENTED"
}
}
],
"transport": "grpc",
"type": "Synchronous/Messages"
},
{
"description": "pact calc error 2",
"interactionMarkup": {
"markup": "```protobuf\nmessage AreaResponse {\n}\n```\n",
"markupType": "COMMON_MARK"
},
"pending": false,
"pluginConfiguration": {
"protobuf": {
"descriptorKey": "a85dff8f82655a9681aad113575dcfbb",
"service": "Calculator/calculateOne"
}
},
"request": {
"contents": {
"content": "EgoNAABAQBUAAIBA",
"contentType": "application/protobuf;message=ShapeMessage",
"contentTypeHint": "BINARY",
"encoded": "base64"
},
"matchingRules": {
"body": {
"$.rectangle.length": {
"combine": "AND",
"matchers": [
{
"match": "number"
}
]
},
"$.rectangle.width": {
"combine": "AND",
"matchers": [
{
"match": "number"
}
]
}
}
},
"metadata": {
"contentType": "application/protobuf;message=ShapeMessage"
}
},
"response": [
{
"contents": {
"content": "",
"contentType": "application/protobuf;message=AreaResponse",
"contentTypeHint": "BINARY",
"encoded": "base64"
},
"metadata": {
"contentType": "application/protobuf;message=AreaResponse",
"grpc-message": "Not implemented",
"grpc-status": "UNIMPLEMENTED"
}
}
],
"transport": "grpc",
"type": "Synchronous/Messages"
}
],
"metadata": {
"pact-ruby": {
"ffi": "0.4.22"
},
"pactRust": {
"ffi": "0.4.22",
"mockserver": "1.2.9",
"models": "1.2.3"
},
"pactSpecification": {
"version": "4.0"
},
"plugins": [
{
"configuration": {
"a85dff8f82655a9681aad113575dcfbb": {
"protoDescriptors": "CsoHChVhcmVhX2NhbGN1bGF0b3IucHJvdG8SD2FyZWFfY2FsY3VsYXRvciK6AgoMU2hhcGVNZXNzYWdlEjEKBnNxdWFyZRgBIAEoCzIXLmFyZWFfY2FsY3VsYXRvci5TcXVhcmVIAFIGc3F1YXJlEjoKCXJlY3RhbmdsZRgCIAEoCzIaLmFyZWFfY2FsY3VsYXRvci5SZWN0YW5nbGVIAFIJcmVjdGFuZ2xlEjEKBmNpcmNsZRgDIAEoCzIXLmFyZWFfY2FsY3VsYXRvci5DaXJjbGVIAFIGY2lyY2xlEjcKCHRyaWFuZ2xlGAQgASgLMhkuYXJlYV9jYWxjdWxhdG9yLlRyaWFuZ2xlSABSCHRyaWFuZ2xlEkYKDXBhcmFsbGVsb2dyYW0YBSABKAsyHi5hcmVhX2NhbGN1bGF0b3IuUGFyYWxsZWxvZ3JhbUgAUg1wYXJhbGxlbG9ncmFtQgcKBXNoYXBlIikKBlNxdWFyZRIfCgtlZGdlX2xlbmd0aBgBIAEoAlIKZWRnZUxlbmd0aCI5CglSZWN0YW5nbGUSFgoGbGVuZ3RoGAEgASgCUgZsZW5ndGgSFAoFd2lkdGgYAiABKAJSBXdpZHRoIiAKBkNpcmNsZRIWCgZyYWRpdXMYASABKAJSBnJhZGl1cyJPCghUcmlhbmdsZRIVCgZlZGdlX2EYASABKAJSBWVkZ2VBEhUKBmVkZ2VfYhgCIAEoAlIFZWRnZUISFQoGZWRnZV9jGAMgASgCUgVlZGdlQyJICg1QYXJhbGxlbG9ncmFtEh8KC2Jhc2VfbGVuZ3RoGAEgASgCUgpiYXNlTGVuZ3RoEhYKBmhlaWdodBgCIAEoAlIGaGVpZ2h0IkQKC0FyZWFSZXF1ZXN0EjUKBnNoYXBlcxgBIAMoCzIdLmFyZWFfY2FsY3VsYXRvci5TaGFwZU1lc3NhZ2VSBnNoYXBlcyIkCgxBcmVhUmVzcG9uc2USFAoFdmFsdWUYASADKAJSBXZhbHVlMq0BCgpDYWxjdWxhdG9yEk4KDGNhbGN1bGF0ZU9uZRIdLmFyZWFfY2FsY3VsYXRvci5TaGFwZU1lc3NhZ2UaHS5hcmVhX2NhbGN1bGF0b3IuQXJlYVJlc3BvbnNlIgASTwoOY2FsY3VsYXRlTXVsdGkSHC5hcmVhX2NhbGN1bGF0b3IuQXJlYVJlcXVlc3QaHS5hcmVhX2NhbGN1bGF0b3IuQXJlYVJlc3BvbnNlIgBCHFoXaW8ucGFjdC9hcmVhX2NhbGN1bGF0b3LQAgFiBnByb3RvMw==",
"protoFile": "syntax = \"proto3\";\n\npackage area_calculator;\n\noption php_generic_services = true;\noption go_package = \"io.pact/area_calculator\";\n\nservice Calculator {\n rpc calculateOne (ShapeMessage) returns (AreaResponse) {}\n rpc calculateMulti (AreaRequest) returns (AreaResponse) {}\n}\n\nmessage ShapeMessage {\n oneof shape {\n Square square = 1;\n Rectangle rectangle = 2;\n Circle circle = 3;\n Triangle triangle = 4;\n Parallelogram parallelogram = 5;\n }\n}\n\nmessage Square {\n float edge_length = 1;\n}\n\nmessage Rectangle {\n float length = 1;\n float width = 2;\n}\n\nmessage Circle {\n float radius = 1;\n}\n\nmessage Triangle {\n float edge_a = 1;\n float edge_b = 2;\n float edge_c = 3;\n}\n\nmessage Parallelogram {\n float base_length = 1;\n float height = 2;\n}\n\nmessage AreaRequest {\n repeated ShapeMessage shapes = 1;\n}\n\nmessage AreaResponse {\n repeated float value = 1;\n}\n"
}
},
"name": "protobuf",
"version": "0.4.0"
}
]
},
"provider": {
"name": "area-calculator-provider"
}
}
Loading

0 comments on commit 78a2a2a

Please sign in to comment.