spec/lita/handlers/whois_spec.rb in lita-whois-0.0.5 vs spec/lita/handlers/whois_spec.rb in lita-whois-0.1.0

- old
+ new

@@ -1,4 +1,122 @@ -require "spec_helper" +require 'spec_helper' describe Lita::Handlers::Whois, lita_handler: true do + it { routes_command('whois example.com').to(:whois_domain) } + it { routes_command('whois .io').to(:whois_tld) } + it { routes_command('whois 8.8.8.8').to(:whois_ip) } + it { routes_command('whois 2001:418:141e:196::fc4').to(:whois_ip) } + + describe '#whois_domain' do + let(:domain_good) do + client = double + expect(client).to receive(:lookup) { 'Generic response example.com' } + client + end + + let(:domain_bad) do + client = double + expect(client).to receive(:lookup) { 'Bad domain asdfasfldjf.com' } + client + end + + let(:domain_err) do + client = double + expect(client).to receive(:lookup).and_raise(Whois::ServerNotFound) + client + end + + it 'shows a record when the domain exists' do + expect(Whois::Client).to receive(:new) { domain_good } + send_command('whois example.com') + expect(replies.last).to eq('Generic response example.com') + end + + it 'shows an error when the domain is not registered' do + expect(Whois::Client).to receive(:new) { domain_bad } + send_command('whois asdfasfldjf.com') + expect(replies.last).to eq('Bad domain asdfasfldjf.com') + end + + it 'shows an error when the domain does not have a WHOIS' do + expect(Whois::Client).to receive(:new) { domain_err } + send_command('whois asdf.sdf') + expect(replies.last).to eq('Cannot find a WHOIS server for asdf.sdf') + end + end + + describe '#whois_tld' do + let(:tld_good) do + client = double + expect(client).to receive(:lookup) { 'Generic TLD response .io' } + client + end + + let(:tld_bad) do + client = double + expect(client).to receive(:lookup) { 'Invalid TLD response .wtf' } + client + end + + it 'shows a record when the tld exists' do + expect(Whois::Client).to receive(:new) { tld_good } + send_command('whois .io') + expect(replies.last).to eq('Generic TLD response .io') + end + + it 'shows an error when the tld does not exist' do + expect(Whois::Client).to receive(:new) { tld_bad } + send_command('whois .wtf') + expect(replies.last).to eq('Invalid TLD response .wtf') + end + end + + describe '#whois_ipv4' do + let(:ipv4_good) do + client = double + expect(client).to receive(:lookup) { 'Generic IPv4 response 8.8.8.8' } + client + end + + let(:ipv4_err) do + client = double + expect(client).to receive(:lookup).and_raise(Whois::ServerNotFound) + client + end + + let(:ipv6_good) do + client = double + expect(client).to receive(:lookup) { 'IPv6 resp 2001:418:141e:196::fc4' } + client + end + + let(:ipv6_err) do + client = double + expect(client).to receive(:lookup).and_raise(Whois::ServerNotFound) + client + end + + it 'shows results for the IPv4 address' do + expect(Whois::Client).to receive(:new) { ipv4_good } + send_command('whois 8.8.8.8') + expect(replies.last).to eq('Generic IPv4 response 8.8.8.8') + end + + it 'shows an error when the IP is invalid' do + expect(Whois::Client).to receive(:new) { ipv4_err } + send_command('whois 0.0.0.0') + expect(replies.last).to eq('Cannot find a WHOIS server for 0.0.0.0') + end + + it 'shows results for the IPv6 address' do + expect(Whois::Client).to receive(:new) { ipv6_good } + send_command('whois 2001:418:141e:196::fc4') + expect(replies.last).to eq('IPv6 resp 2001:418:141e:196::fc4') + end + + it 'shows an error when the IP is invalid' do + expect(Whois::Client).to receive(:new) { ipv6_err } + send_command('whois ::') + expect(replies.last).to eq('Cannot find a WHOIS server for ::') + end + end end