From 2d719c3171c7828ce3c532ed65f2c18c202bcace Mon Sep 17 00:00:00 2001 From: Beth Skurrie Date: Fri, 24 Jun 2022 16:19:23 +1000 Subject: [PATCH] fix(publish-provider-contract): raise validation error when pact broker base URL is missing or blank --- lib/pactflow/client/cli/provider_contract_commands.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/pactflow/client/cli/provider_contract_commands.rb b/lib/pactflow/client/cli/provider_contract_commands.rb index c885019..2276cdc 100644 --- a/lib/pactflow/client/cli/provider_contract_commands.rb +++ b/lib/pactflow/client/cli/provider_contract_commands.rb @@ -1,10 +1,12 @@ require "pact_broker/client/hash_refinements" +require "pact_broker/client/string_refinements" module Pactflow module Client module CLI module ProviderContractCommands using PactBroker::Client::HashRefinements + using PactBroker::Client::StringRefinements def self.included(thor) thor.class_eval do @@ -32,6 +34,7 @@ def self.included(thor) def publish_provider_contract(provider_contract_path) require "pactflow/client/provider_contracts/publish" + validate_pact_broker_url validate_publish_provider_contract_options(provider_contract_path) result = ::Pactflow::Client::ProviderContracts::Publish.call( publish_provider_contract_command_params(provider_contract_path), @@ -47,6 +50,12 @@ def command_options { verbose: options.verbose, output: options.output } end + def validate_pact_broker_url + if pact_broker_client_options[:pact_broker_base_url].blank? + raise Thor::Error, "No value provided for required option --broker-base-url or environment variable PACT_BROKER_BASE_URL" + end + end + def validate_publish_provider_contract_options(provider_contract_path) if !options.verification_success.nil? && options.verification_exit_code raise Thor::Error, "Cannot use both --verification-success|--no-verification-success and --verification-exit-code"