Commit fa0624fc authored by Yorick Peterse's avatar Yorick Peterse

Better formatting for downtime check messages

This removes excessive whitespace from the messages (e.g. leading
whitespace) and ensures the message is more clearly visible.
parent 88a0c984
module Gitlab module Gitlab
class DowntimeCheck class DowntimeCheck
class Message class Message
attr_reader :path, :offline, :reason attr_reader :path, :offline
OFFLINE = "\e[31moffline\e[0m" OFFLINE = "\e[31moffline\e[0m"
ONLINE = "\e[32monline\e[0m" ONLINE = "\e[32monline\e[0m"
...@@ -19,10 +19,21 @@ module Gitlab ...@@ -19,10 +19,21 @@ module Gitlab
label = offline ? OFFLINE : ONLINE label = offline ? OFFLINE : ONLINE
message = "[#{label}]: #{path}" message = "[#{label}]: #{path}"
message += ": #{reason}" if reason
if reason?
message += ":\n\n#{reason}\n\n"
end
message message
end end
def reason?
@reason.present?
end
def reason
@reason.strip.lines.map(&:strip).join("\n")
end
end end
end end
end end
...@@ -5,7 +5,7 @@ describe Gitlab::DowntimeCheck::Message do ...@@ -5,7 +5,7 @@ describe Gitlab::DowntimeCheck::Message do
it 'returns an ANSI formatted String for an offline migration' do it 'returns an ANSI formatted String for an offline migration' do
message = described_class.new('foo.rb', true, 'hello') message = described_class.new('foo.rb', true, 'hello')
expect(message.to_s).to eq("[\e[31moffline\e[0m]: foo.rb: hello") expect(message.to_s).to eq("[\e[31moffline\e[0m]: foo.rb:\n\nhello\n\n")
end end
it 'returns an ANSI formatted String for an online migration' do it 'returns an ANSI formatted String for an online migration' do
...@@ -14,4 +14,26 @@ describe Gitlab::DowntimeCheck::Message do ...@@ -14,4 +14,26 @@ describe Gitlab::DowntimeCheck::Message do
expect(message.to_s).to eq("[\e[32monline\e[0m]: foo.rb") expect(message.to_s).to eq("[\e[32monline\e[0m]: foo.rb")
end end
end end
describe '#reason?' do
it 'returns false when no reason is specified' do
message = described_class.new('foo.rb')
expect(message.reason?).to eq(false)
end
it 'returns true when a reason is specified' do
message = described_class.new('foo.rb', true, 'hello')
expect(message.reason?).to eq(true)
end
end
describe '#reason' do
it 'strips excessive whitespace from the returned String' do
message = described_class.new('foo.rb', true, " hello\n world\n\n foo")
expect(message.reason).to eq("hello\nworld\n\nfoo")
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment