Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NoMethodError: undefined method `strip' for nil:NilClass #43

Open
sergioa opened this issue Mar 8, 2022 · 11 comments
Open

NoMethodError: undefined method `strip' for nil:NilClass #43

sergioa opened this issue Mar 8, 2022 · 11 comments

Comments

@sergioa
Copy link

sergioa commented Mar 8, 2022

Hi,

My PACT verify is failing while replaying the interaction with the following error:

pact-cli_1                         |       Failure/Error: replay_interaction interaction, options[:request_customizer]
pact-cli_1                         | 
pact-cli_1                         |       NoMethodError:
pact-cli_1                         |         undefined method `strip' for nil:NilClass
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/mock.rb:260:in `block in identify_cookie_attributes'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/mock.rb:257:in `each'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/mock.rb:257:in `identify_cookie_attributes'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/mock.rb:238:in `block in parse_cookies_from_header'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/mock.rb:236:in `each'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/mock.rb:236:in `parse_cookies_from_header'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/mock.rb:187:in `initialize'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-test-1.1.0/lib/rack/mock_session.rb:31:in `new'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-test-1.1.0/lib/rack/mock_session.rb:31:in `request'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-test-1.1.0/lib/rack/test.rb:266:in `process_request'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rack-test-1.1.0/lib/rack/test.rb:129:in `custom_request'
pact-cli_1                         |       # /usr/lib/ruby/2.7.0/forwardable.rb:235:in `custom_request'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/provider/test_methods.rb:25:in `replay_interaction'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/provider/rspec.rb:107:in `block (3 levels) in describe_interaction'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/provider/rspec.rb:223:in `run_once'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/provider/rspec.rb:104:in `block (2 levels) in describe_interaction'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:455:in `instance_exec'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:455:in `instance_exec'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:365:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:529:in `block in run_owned_hooks_for'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:528:in `each'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:528:in `run_owned_hooks_for'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:615:in `block in run_example_hooks_for'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:614:in `reverse_each'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:614:in `run_example_hooks_for'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:484:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:502:in `run_before_example'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:261:in `block in run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:508:in `block in with_around_and_singleton_context_hooks'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:465:in `block in with_around_example_hooks'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:486:in `block in run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:624:in `run_around_example_hooks_for'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:486:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:465:in `with_around_example_hooks'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:508:in `with_around_and_singleton_context_hooks'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:259:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:644:in `block in run_examples'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:640:in `map'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:640:in `run_examples'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:606:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `block in run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `map'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `block in run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `map'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `block in run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `map'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `block in run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `map'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:607:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:121:in `map'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/configuration.rb:2067:in `with_suite_hooks'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:116:in `block in run_specs'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/reporter.rb:74:in `report'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:115:in `run_specs'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:89:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:71:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/provider/pact_spec_runner.rb:91:in `run_specs'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/provider/pact_spec_runner.rb:35:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/cli/run_pact_verification.rb:70:in `run_with_pact_uri_object'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/cli/run_pact_verification.rb:51:in `run_specs'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/cli/run_pact_verification.rb:21:in `call'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-1.61.0/lib/pact/cli/run_pact_verification.rb:13:in `call'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/app.rb:182:in `verify_pact'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/app.rb:51:in `block in pacts_pass_verification?'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/app.rb:50:in `collect'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/app.rb:50:in `pacts_pass_verification?'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/app.rb:42:in `call'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/app.rb:35:in `call'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/cli/verify.rb:49:in `verify'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems.-provider-verifier-1.36.1/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'
pact-cli_1                         |       # ./lib/pact/cli.rb:53:in `verify'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
pact-cli_1                         |       # ./bin/pact:15:in `<top (required)>'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
pact-cli_1                         |       # /usr/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
pact-cli_1                         |       # /usr/bin/bundle:25:in `load'
pact-cli_1                         |       # /usr/bin/bundle:25:in `<main>'

After some further analysis it seems to be related to the provider setting the header set-cookie.

Going through the commit log in rack, we've seen this commit: rack/rack@d3225f7

May that be related to the hash not being initialised properly?

If so, are there any plans to release a new version of both pact-provider-verifier and pact-ruby-cli.

We are using pactfoundation/pact-cli:0.50.0.20 .

@sergioa sergioa closed this as completed Mar 9, 2022
@sergioa sergioa reopened this Mar 10, 2022
@bethesque
Copy link
Member

This is something to do with the format of the cookie. I think it might not have a value after the equals sign.

https://github.com/rack/rack/blob/2.2.3/lib/rack/mock.rb#L260

@mefellows
Copy link
Member

Can you please share your pact file @sergioa ?

@sergioa
Copy link
Author

sergioa commented Mar 11, 2022

This is something to do with the format of the cookie. I think it might not have a value after the equals sign.

https://github.com/rack/rack/blob/2.2.3/lib/rack/mock.rb#L260

set-cookie header doesn't seem to be null. However, it's value is base64 encoded thus there is an equals sign in it.

Set-Cookie: _csrf=rQuv4HExdm+67xqYVF+UnhLR+ATw8j4HM7GarmGMZc1Wp9ECJwc0ZhgFoTi9gj596pSeM3hijQP2FgRT2iexIbeR81WitLZ+TbJz+qaD7bg=; Path=/; HttpOnly; Secure; SameSite=None

May that be breaking the parsing?

@caiquecoelhozx
Copy link

I'm getting the same problem. In my case I have two Set-cookie like below:

Set-Cookie: visid_incap_2672856=Wh5qEXyJR3C36oYgTgUX4w9bKAAAACUSYT15v0BkujFL4lpj77U; expires=Sat, 11 Mar 2023 09:33:33 GMT; HttpOnly; path=/; Domain=.ze.delivery
Set-Cookie: incap_ses_786_2672856=zHo+LaTdC28EbW7tcW/oChBbK2IAAAI5Wrm0pJUqP3A==; path=/; Domain=.ze.delivery

And my contract is:

{
  "consumer": {
    "name": "courier-phoenix"
  },
  "provider": {
    "name": "courier-api"
  },
  "interactions": [
    {
      "description": "A request with a new show case",
      "request": {
        "method": "POST",
        "path": "/public-api",
        "headers": {
          "content-type": "application/json"
        },
        "body": {
          "operationName": "loadNewShowCase",
          "query": "query loadNewShowCase($filter: ShowCaseFilter) {\n  loadNewShowCase(filter: $filter) {\n    messages {\n      category\n      target\n      key\n      message\n    }\n    showCase {\n      images\n      shelves {\n        id\n        type\n        displayName\n        hasNextItems\n        items {\n          id\n          type\n          images\n          displayName\n          applicableDiscount {\n            presentedDiscountValue\n            discountType\n            finalValue\n          }\n          category {\n            id\n            displayName\n          }\n          brand {\n            id\n            displayName\n          }\n          price {\n            min\n            max\n          }\n        }\n      }\n    }\n  }\n}\n",
          "variables": {
          }
        },
        "matchingRules": {
          "$.body.query": {
            "match": "regex",
            "regex": "query\\s*loadNewShowCase\\(\\$filter:\\s*ShowCaseFilter\\)\\s*\\{\\s*loadNewShowCase\\(filter:\\s*\\$filter\\)\\s*\\{\\s*messages\\s*\\{\\s*category\\s*target\\s*key\\s*message\\s*\\}\\s*showCase\\s*\\{\\s*images\\s*shelves\\s*\\{\\s*id\\s*type\\s*displayName\\s*hasNextItems\\s*items\\s*\\{\\s*id\\s*type\\s*images\\s*displayName\\s*applicableDiscount\\s*\\{\\s*presentedDiscountValue\\s*discountType\\s*finalValue\\s*\\}\\s*category\\s*\\{\\s*id\\s*displayName\\s*\\}\\s*brand\\s*\\{\\s*id\\s*displayName\\s*\\}\\s*price\\s*\\{\\s*min\\s*max\\s*\\}\\s*\\}\\s*\\}\\s*\\}\\s*\\}\\s*\\}\\s*"
          }
        }
      },
      "response": {
        "status": 200,
        "headers": {
          "Content-Type": "application/json; charset=utf-8"
        },
        "body": {
          "data": {
            "loadNewShowCase": {
              "messages": null,
              "showCase": {
                "images": [

                ],
                "shelves": [
                  {
                    "id": "31239bf8-4893-7e5316a8e6fd",
                    "type": "BILLBOARD",
                    "displayName": "Destaques",
                    "hasNextItems": false,
                    "items": [
                      {
                        "id": "b7566f41-db87-4531a5b6de50",
                        "type": "BANNER",
                        "images": [
                          "https://banner/b7566f41-db87-4b03-bef2-4531a5b6de50-9b6e-2124815cf974.jpg"
                        ],
                        "displayName": "TESTEQA10",
                        "applicableDiscount": null,
                        "category": null,
                        "brand": null,
                        "price": null
                      }
                    ]
                  }
                ]
              }
            }
          },
          "default": {
            "data": {
              "loadNewShowCase": {
                "messages": null,
                "showCase": {
                  "images": [

                  ],
                  "shelves": [
                    {
                      "id": "31239bf8-7e5316a8e6fd",
                      "type": "BILLBOARD",
                      "displayName": "Destaques",
                      "hasNextItems": false,
                      "items": [
                        {
                          "id": "b7566f4-4531a5b6de50",
                          "type": "BANNER",
                          "images": [
                            "https://banner/b7566f41-db87_180cab5b-ae61-4b28-9b6e-2124815cf974.jpg"
                          ],
                          "displayName": "TESTEQA10",
                          "applicableDiscount": null,
                          "category": null,
                          "brand": null,
                          "price": null
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "matchingRules": {
          "$.body": {
            "match": "type"
          }
        }
      }
    }
  ],
  "metadata": {
    "pactSpecification": {
      "version": "2.0.0"
    }
  }
}

@sergioa
Copy link
Author

sergioa commented Mar 12, 2022

Digging a little bit more into it, we've found that having equals sign as part of the cookie value may cause failure and was fixed:

rack/rack@7bb64bc

Any chance, that rack version could be updated to prevent that failure, which it is actually the one that we are facing?

@caiquecoelhozx
Copy link

That would be amazing, right now we just stopped our PACT integration because of this error

@sergioa
Copy link
Author

sergioa commented Mar 15, 2022

we are blocked as well, we are unable to rollout the integration with PACT just because of this issue. @mefellows @bethesque is this something you may consider?

@sergioa
Copy link
Author

sergioa commented Mar 15, 2022

I have just realized that rack 2.2.3 doesn't include the fix and there's no newer version yet released.

I don't have any idea on how to fix this.

@mefellows
Copy link
Member

I don't have a proposal how to fix it on the Ruby side, but I would suggest (given it looks as though your use case for these cookies is authentication) that in the meantime you consider an alternative approach for that specific aspect of your contract testing initiative.

@YOU54F
Copy link
Member

YOU54F commented Apr 26, 2023

Digging a little bit more into it, we've found that having equals sign as part of the cookie value may cause failure and was fixed:

rack/rack@7bb64bc

Any chance, that rack version could be updated to prevent that failure, which it is actually the one that we are facing?

It looks like this change is released in rack 3.x

https://github.com/rack/rack/releases/tag/v3.0.7

I wonder what is stopping us moving to a later version of rack? Ruby 2.x -> 3.x things?

@sergioa how are you progressing these days, are you able to use the rust backed verifier to see if that plays out differently

@YOU54F
Copy link
Member

YOU54F commented Sep 6, 2024

we are waiting on a PR to be merged

see - pact-foundation/pact-provider-verifier#122

we may need to vendor, in order to allow these to proceed (which would be nice, as there are better things to be thinking about it life)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants