Hi everybody. Can it be that there are still some ...
# pact-broker
l
Hi everybody. Can it be that there are still some "blank?" problems left in 2.102.1, e.g. when a consumer version selector contains {"mainBranch":true}? When running pact-broker-docker/blob/master/docker-compose.yml with pactfoundation/pact-broker:2.102.1.0 with an empty database a POST to http://localhost:9292/pacts/provider/bit-jme-cdc-provider-service-test-pact/for-verification with body {"consumerVersionSelectors":[{"mainBranch":true}],"providerVersionBranch":"feature/test-pact"} results in HTTP 500 {"error":{"message":"An error has occurred. The details have been logged with the reference JVbxfuyZqD","reference":"JVbxfuyZqD"}} with the error log pact-broker_1 | 2022-07-14 084134.430032 E [7:puma srv tp 001 logging.rb:48] PactBroker:Errors:ErrorLogger -- Error reference JVbxfuyZqD -- Exception: NoMethodError: undefined method `blank?' for true:TrueClass pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb79in `not_provided?' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb97in `validate_consumer_version_selector' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb69in `block in add_cross_field_validation_errors' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb68in `each' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb68in `each_with_index' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb68in `each' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb68in `flat_map' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb68in `add_cross_field_validation_errors' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb61in `call' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/resources/provider_pacts_for_verification.rb💯in `schema_validation_errors?' pact-broker_1 | /pact_broker/vendor/bundle/ruby/2.7.0/gems/pact_broker-2.102.1/lib/pact_broker/api/resources/provider_pacts_for_verification.rb23in `malformed_request?' When running pactfoundation/pact-broker:2.101.0.1 the same request results in { "error": "No provider with name 'bit-jme-cdc-provider-service-test-pact' found" } which is OK.
b
Ugh, this has been driving me nuts! At some stage there must have been a dependency that monkey patched the
blank?
method on to a heap of classes (cough active-effing-support cough) that has recently been removed.
I thought I’d caught all of them, but that one must have slipped through. I’ll put out a fix asap.
l
Great, thanks!
b
@Lorenz Ammon can you update and try again please?
l
@Beth (pactflow.io/Pact Broker/pact-ruby) Thanks for the quick fixing, Beth! Version 2.102.2.0 works for me now with requests containing a {"mainBranch":true} version selector. 👍
b
Great!
The downside of non compiled languages that give people enough rope to hang themselves...