From aec892339e520cd4495cfc0ad3193146c2bd14da Mon Sep 17 00:00:00 2001 From: Alan Guo Xiang Tan Date: Mon, 3 Jun 2024 13:40:21 +0800 Subject: [PATCH] DEV: Add rspec tests for `SignalTrapLogger` (#27302) Follow-up to 23c38cbf1189d90384c28654d11ab4a65191ed03 --- lib/signal_trap_logger_spec.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/signal_trap_logger_spec.rb diff --git a/lib/signal_trap_logger_spec.rb b/lib/signal_trap_logger_spec.rb new file mode 100644 index 00000000000..634e4a028ec --- /dev/null +++ b/lib/signal_trap_logger_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +RSpec.describe SignalTrapLogger do + describe "#log" do + it "should queue up messages to be logged which will then be logged by the logging thread" do + fake_logger = FakeLogger.new + + SignalTrapLogger.instance.log(fake_logger, "message 1", level: :error) + + # Ensures that thread doesn't die even if an error is encountered + SignalTrapLogger.instance.log(fake_logger, "error", level: :abcdes) + + SignalTrapLogger.instance.log(fake_logger, "message 2", level: :info) + + wait_for { fake_logger.errors.size == 1 && fake_logger.infos.size == 1 } + + expect(fake_logger.errors).to eq(["message 1"]) + expect(fake_logger.infos).to eq(["message 2"]) + end + end +end