File: thaum_spec.rb

package info (click to toggle)
ruby-ponder 0.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 240 kB
  • sloc: ruby: 1,051; makefile: 4
file content (63 lines) | stat: -rw-r--r-- 2,116 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
$LOAD_PATH.unshift(File.dirname(__FILE__))

require 'spec_helper'
require 'ponder'

describe Ponder::Thaum do
  before(:each) do
    @ponder = Ponder::Thaum.new
  end

  it 'sets a default configuration' do
    expect(@ponder.config.server).to eql('localhost')
    expect(@ponder.config.port).to equal(6667)
    expect(@ponder.config.nick).to eql('Ponder')
    expect(@ponder.config.username).to eql('Ponder')
    expect(@ponder.config.real_name).to eql('Ponder')
    expect(@ponder.config.verbose).to be_truthy
    expect(@ponder.config.logging).to be_falsey
    expect(@ponder.config.reconnect).to be_truthy
    expect(@ponder.config.reconnect_interval).to equal(30)

    expect(@ponder.logger).to be_an_instance_of(Ponder::Logger::BlindIo)
    expect(@ponder.console_logger).to be_an_instance_of(Ponder::Logger::Twoflogger)
  end

  it 'sets the logger correctly' do
    allow(FileUtils).to receive(:mkdir_p).and_return(true)
    expect(Ponder::Logger::Twoflogger).to receive(:new).twice
    @ponder = Ponder::Thaum.new { |t| t.logging = true }
  end

  it 'sets default callbacks' do
    expect(@ponder.callbacks[:query].size).to eq(3)
  end

  context 'creates a correct default callback for' do
    it 'PING PONG' do
      time = Time.now.to_i
      expect(@ponder).to receive(:notice).with('Peter', "\001PING #{time}\001")
      EM.run do
        @ponder.process_callbacks(:query, {:nick => 'Peter', :message => "\001PING #{time}\001"})
        EM.schedule { EM.stop }
      end
    end

    it 'VERSION' do
      expect(@ponder).to receive(:notice).with('Peter', "\001VERSION Ponder #{Ponder::VERSION} (https://github.com/tbuehlmann/ponder)\001")
      EM.run do
        @ponder.process_callbacks(:query, {:nick => 'Peter', :message => "\001VERSION\001"})
        EM.schedule { EM.stop }
      end
    end

    it 'TIME' do
      expect(@ponder).to receive(:notice).with('Peter', "\001TIME #{Time.now.strftime('%a %b %d %H:%M:%S %Y')}\001")
      EM.run do
        @ponder.process_callbacks(:query, {:nick => 'Peter', :message => "\001TIME\001"})
        EM.schedule { EM.stop }
      end
    end
  end
end