File: base_adapter_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 (91 lines) | stat: -rw-r--r-- 2,276 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
82
83
84
85
86
87
88
89
90
91
describe Knapsack::Adapters::BaseAdapter do
  describe '.bind' do
    let(:adapter) { instance_double(described_class) }

    subject { described_class.bind }

    before do
      expect(described_class).to receive(:new).and_return(adapter)
      expect(adapter).to receive(:bind)
    end

    it { should eql adapter }
  end

  describe '#bind' do
    let(:tracker) { instance_double(Knapsack::Tracker) }

    before do
      allow(subject).to receive(:tracker).and_return(tracker)
    end

    context 'when generate report' do
      before do
        expect(tracker).to receive(:config).and_return({ generate_report: true })
      end

      it do
        expect(subject).to receive(:bind_time_tracker)
        expect(subject).to receive(:bind_report_generator)
        expect(subject).not_to receive(:bind_time_offset_warning)
        subject.bind
      end
    end

    context 'when enable time offset warning' do
      before do
        expect(tracker).to receive(:config).twice.and_return({
          generate_report: false,
          enable_time_offset_warning: true
        })
      end

      it do
        expect(subject).to receive(:bind_time_tracker)
        expect(subject).to receive(:bind_time_offset_warning)
        expect(subject).not_to receive(:bind_report_generator)
        subject.bind
      end
    end

    context 'when adapter is off' do
      before do
        expect(tracker).to receive(:config).twice.and_return({
          generate_report: false,
          enable_time_offset_warning: false
        })
      end

      it do
        expect(subject).not_to receive(:bind_time_tracker)
        expect(subject).not_to receive(:bind_report_generator)
        expect(subject).not_to receive(:bind_time_offset_warning)
        subject.bind
      end
    end
  end

  describe '#bind_time_tracker' do
    it do
      expect {
        subject.bind_time_tracker
      }.to raise_error(NotImplementedError)
    end
  end

  describe '#bind_report_generator' do
    it do
      expect {
        subject.bind_report_generator
      }.to raise_error(NotImplementedError)
    end
  end

  describe '#bind_time_offset_warning' do
    it do
      expect {
        subject.bind_time_offset_warning
      }.to raise_error(NotImplementedError)
    end
  end
end