# frozen_string_literal: true RSpec.describe TruncateLogsFormatter do describe "#call" do describe "when the formatter is initialized with `log_line_max_chars` of 10" do let(:formatter) { TruncateLogsFormatter.new(log_line_max_chars: 10) } describe "when the messages is 5 characters long" do it "should not carry out any truncation of the message" do expect(formatter.call(nil, nil, nil, "abcde")).to eq("abcde") end end describe "when the message is 10 characters long" do it "should not carry out any truncation of the message" do expect(formatter.call(nil, nil, nil, "aaaaaaaaaa")).to eq("aaaaaaaaaa") end end describe "when the message is 11 characters long" do it "should truncate the message with the right postfix" do expect(formatter.call(nil, nil, nil, "aaaaaaaaaaa")).to eq("aaaaaaaaaa...(truncated)") end it "should truncate the message with the right postfix while preserving newlines" do expect(formatter.call(nil, nil, nil, "aaaaaaaaaaa\n")).to eq("aaaaaaaaaa...(truncated)\n") end end end end end