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
|