From 2298ea6e12f8c7132df52c8d26e9a2fd7c2b5177 Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Fri, 25 Feb 2022 15:36:26 +0000 Subject: [PATCH] Handle invalid VCAP config --- app/services/paas_configuration_service.rb | 1 + spec/services/paas_configuration_service_spec.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/app/services/paas_configuration_service.rb b/app/services/paas_configuration_service.rb index 9d8f1fe73..64a6cfe8f 100644 --- a/app/services/paas_configuration_service.rb +++ b/app/services/paas_configuration_service.rb @@ -27,6 +27,7 @@ private JSON.parse(ENV["VCAP_SERVICES"], { symbolize_names: true }) rescue StandardError @logger.warn("Could not parse VCAP_SERVICES!") + return {} end end diff --git a/spec/services/paas_configuration_service_spec.rb b/spec/services/paas_configuration_service_spec.rb index 1e4c266e0..419c8d4ff 100644 --- a/spec/services/paas_configuration_service_spec.rb +++ b/spec/services/paas_configuration_service_spec.rb @@ -22,6 +22,22 @@ RSpec.describe PaasConfigurationService do end end + context "when configuration is present but invalid" do + let(:vcap_services) do + {"aws-s3-bucket": [{instance_name: "bucket_1"}, {instance_name: "bucket_2"}]} + end + + before do + allow(ENV).to receive(:[]).with("VCAP_SERVICES").and_return(vcap_services) + allow(logger).to receive(:warn) + end + + it "logs an error" do + expect(logger).to receive(:warn).with("Could not parse VCAP_SERVICES!") + config_service.s3_config_present? + end + end + context "when the paas configuration is present with S3 buckets" do let(:vcap_services) do <<-JSON