File: logger_spec.rb

package info (click to toggle)
ruby-knapsack 1.18.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 1,084 kB
  • sloc: ruby: 2,832; makefile: 4; sh: 3
file content (81 lines) | stat: -rw-r--r-- 2,268 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
describe Knapsack::Logger do
  let(:text) { 'Text' }

  describe '#debug' do
    before { subject.level = level }

    context 'when level is DEBUG' do
      let(:level) { described_class::DEBUG }
      it { expect { subject.debug(text) }.to output(/#{text}/).to_stdout }
    end

    context 'when level is INFO' do
      let(:level) { described_class::INFO }
      it { expect { subject.debug(text) }.to output('').to_stdout }
    end

    context 'when level is WARN' do
      let(:level) { described_class::WARN }
      it { expect { subject.debug(text) }.to output('').to_stdout }
    end
  end

  describe '#info' do
    before { subject.level = level }

    context 'when level is DEBUG' do
      let(:level) { described_class::DEBUG }
      it { expect { subject.info(text) }.to output(/#{text}/).to_stdout }
    end

    context 'when level is INFO' do
      let(:level) { described_class::INFO }
      it { expect { subject.info(text) }.to output(/#{text}/).to_stdout }
    end

    context 'when level is WARN' do
      let(:level) { described_class::WARN }
      it { expect { subject.info(text) }.to output('').to_stdout }
    end
  end

  describe '#warn' do
    before { subject.level = level }

    context 'when level is DEBUG' do
      let(:level) { described_class::DEBUG }
      it { expect { subject.warn(text) }.to output(/#{text}/).to_stdout }
    end

    context 'when level is INFO' do
      let(:level) { described_class::INFO }
      it { expect { subject.warn(text) }.to output(/#{text}/).to_stdout }
    end

    context 'when level is WARN' do
      let(:level) { described_class::WARN }
      it { expect { subject.warn(text) }.to output(/#{text}/).to_stdout }
    end
  end

  describe '#log' do
    let(:log_level) { Knapsack::Logger::INFO }
    let(:log_message) { 'log-message' }

    it 'delegates to the method matching the specified log level' do
      expect(subject).to receive(:info).with(log_message)

      subject.log(log_level, log_message)
    end

    context 'when the log level is unknown' do
      let(:log_level) { 5 }

      it 'raises an UnknownLogLevel error' do
        expect {
          subject.log(log_level, log_message)
        }.to raise_error Knapsack::Logger::UnknownLogLevel
      end
    end
  end
end