Sha256: 2dd53e2f5a7c8d5537ab06a2e8900c69903dc436174ae8c266179abb9d51de58

Contents?: true

Size: 1.55 KB

Versions: 24

Compression:

Stored size: 1.55 KB

Contents

require 'pact_broker/db/log_quietener'

module PactBroker
  module DB
    describe Logger do
      let(:logs) { StringIO.new }
      let(:wrapped_logger) { ::Logger.new(logs) }

      subject { LogQuietener.new(wrapped_logger) }

      describe "error" do
        context "when the error is for a table or view that does not exist" do
          before do
            subject.error("PG::UndefinedTable - some error")
          end

          it "logs the message at debug level" do
            expect(logs.string).to include "DEBUG -- :"
          end

          it "appends a friendly message so people don't freak out" do
            expect(logs.string).to include "PG::UndefinedTable - some error Don't panic."
          end
        end

        context "when the error is a foreign key constraint violation" do
          before do
            subject.error("SQLite3::ConstraintException: FOREIGN KEY constraint failed: delete from pacticipants where id = 1")
          end

          it "logs the message at warn level" do
            expect(logs.string).to include "WARN -- :"
          end
        end

        context "when the error is NOT for a table or view that does not exist" do
          before do
            subject.error("foo bar")
          end

          it "logs the message at error level" do
            expect(logs.string).to include "ERROR -- :"
          end

          it "does not appends a friendly message so people will correctly panic" do
            expect(logs.string).to_not include "Don't panic."
          end
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
pact_broker-2.74.1 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.74.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.73.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.72.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.71.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.70.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.69.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.68.1 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.68.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.67.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.66.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.65.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.64.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.63.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.62.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.61.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.60.1 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.60.0 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.59.2 spec/lib/pact_broker/db/log_quietener_spec.rb
pact_broker-2.59.1 spec/lib/pact_broker/db/log_quietener_spec.rb