hipbot 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,13 @@
1
1
  require_relative '../lib/hipbot'
2
2
 
3
- # require 'coveralls'
4
- # Coveralls.wear!
3
+ require 'coveralls'
4
+ Coveralls.wear!
5
5
 
6
6
  RSpec.configure do |config|
7
- config.mock_with :mocha
7
+ config.mock_with :rspec
8
8
 
9
9
  config.before(:all) do
10
10
  Hipbot::User.send(:include, Hipbot::Storages::Hash)
11
11
  Hipbot::Room.send(:include, Hipbot::Storages::Hash)
12
- Hipbot.stubs(logger: NullLogger.instance)
13
- end
14
- end
15
-
16
- class NullLogger
17
- def self.instance
18
- Logger.new('/dev/null')
19
12
  end
20
13
  end
@@ -5,7 +5,6 @@ describe "a class that inherits", Hipbot::Bot do
5
5
 
6
6
  before(:each) do
7
7
  described_class.instance.plugins.clear
8
- described_class.instance.configuration.logger = NullLogger.instance
9
8
  described_class.instance.setup
10
9
  end
11
10
  subject { described_class.instance }
@@ -19,7 +18,7 @@ describe "a class that inherits", Hipbot::Bot do
19
18
  described_class.on /^hello there$/ do
20
19
  reply('hi!')
21
20
  end
22
- subject.expects(:send_to_room).with(room, 'hi!')
21
+ subject.should_receive(:send_to_room).with(room, 'hi!')
23
22
  subject.react(sender, room, '@robot hello there')
24
23
  end
25
24
 
@@ -27,7 +26,7 @@ describe "a class that inherits", Hipbot::Bot do
27
26
  described_class.on /^you are (.*), robot$/ do |adj|
28
27
  reply("i know i'm #{adj}!")
29
28
  end
30
- subject.expects(:send_to_room).with(room, "i know i'm cool!")
29
+ subject.should_receive(:send_to_room).with(room, "i know i'm cool!")
31
30
  subject.react(sender, room, '@robot you are cool, robot')
32
31
  end
33
32
 
@@ -35,7 +34,7 @@ describe "a class that inherits", Hipbot::Bot do
35
34
  described_class.on /^send "(.*)" to (.*@.*)$/ do |message, recipient|
36
35
  reply("sent \"#{message}\" to #{recipient}")
37
36
  end
38
- subject.expects(:send_to_room).with(room, 'sent "hello!" to robot@robots.org')
37
+ subject.should_receive(:send_to_room).with(room, 'sent "hello!" to robot@robots.org')
39
38
  subject.react(sender, room, '@robot send "hello!" to robot@robots.org')
40
39
  end
41
40
 
@@ -43,14 +42,14 @@ describe "a class that inherits", Hipbot::Bot do
43
42
  described_class.default do |message|
44
43
  reply("I don't understand \"#{message}\"")
45
44
  end
46
- subject.expects(:send_to_room).with(room, 'I don\'t understand "hello robot!"')
45
+ subject.should_receive(:send_to_room).with(room, 'I don\'t understand "hello robot!"')
47
46
  subject.react(sender, room, '@robot hello robot!')
48
47
  end
49
48
 
50
49
  it "should choose first option when multiple options match" do
51
50
  described_class.on /hello there/ do reply('hello there') end
52
51
  described_class.on /hello (.*)/ do reply('hello') end
53
- subject.expects(:send_to_room).with(room, 'hello there')
52
+ subject.should_receive(:send_to_room).with(room, 'hello there')
54
53
  subject.react(sender, room, '@robot hello there')
55
54
  end
56
55
 
@@ -62,17 +61,17 @@ describe "a class that inherits", Hipbot::Bot do
62
61
  end
63
62
 
64
63
  it "should understand simple english" do |msg|
65
- subject.expects(:send_to_room).with(room, 'hello tom')
64
+ subject.should_receive(:send_to_room).with(room, 'hello tom')
66
65
  subject.react(sender, room, '@robot hello tom')
67
66
  end
68
67
 
69
68
  it "should understand english" do |msg|
70
- subject.expects(:send_to_room).with(room, 'hello tom')
69
+ subject.should_receive(:send_to_room).with(room, 'hello tom')
71
70
  subject.react(sender, room, '@robot good morning tom')
72
71
  end
73
72
 
74
73
  it "should understand german" do |msg|
75
- subject.expects(:send_to_room).with(room, 'hello tom')
74
+ subject.should_receive(:send_to_room).with(room, 'hello tom')
76
75
  subject.react(sender, room, '@robot guten tag tom')
77
76
  end
78
77
  end
@@ -82,7 +81,7 @@ describe "a class that inherits", Hipbot::Bot do
82
81
  described_class.on /^you are (.*)$/, global: true do |adj|
83
82
  reply("i know i'm #{adj}!")
84
83
  end
85
- subject.expects(:send_to_room).with(room, "i know i'm cool!")
84
+ subject.should_receive(:send_to_room).with(room, "i know i'm cool!")
86
85
  subject.react(sender, room, 'you are cool')
87
86
  end
88
87
 
@@ -90,7 +89,7 @@ describe "a class that inherits", Hipbot::Bot do
90
89
  described_class.on /^you are (.*)$/ do |adj|
91
90
  reply("i know i'm #{adj}!")
92
91
  end
93
- subject.expects(:send_to_room).never
92
+ subject.should_receive(:send_to_room).never
94
93
  subject.react(sender, room, 'you are cool')
95
94
  end
96
95
  end
@@ -102,7 +101,7 @@ describe "a class that inherits", Hipbot::Bot do
102
101
  described_class.on /wazzup\?/, from: sender.name do
103
102
  reply('Wazzup, Tom?')
104
103
  end
105
- subject.expects(:send_to_room).with(room, 'Wazzup, Tom?')
104
+ subject.should_receive(:send_to_room).with(room, 'Wazzup, Tom?')
106
105
  subject.react(sender, room, '@robot wazzup?')
107
106
  end
108
107
 
@@ -110,7 +109,7 @@ describe "a class that inherits", Hipbot::Bot do
110
109
  described_class.on /wazzup\?/, from: ['someone', sender.name] do
111
110
  reply('wazzup, tom?')
112
111
  end
113
- subject.expects(:send_to_room).with(room, 'wazzup, tom?')
112
+ subject.should_receive(:send_to_room).with(room, 'wazzup, tom?')
114
113
  subject.react(sender, room, '@robot wazzup?')
115
114
  end
116
115
 
@@ -118,7 +117,7 @@ describe "a class that inherits", Hipbot::Bot do
118
117
  described_class.on /wazzup\?/, from: sender.name do
119
118
  reply('wazzup, tom?')
120
119
  end
121
- subject.expects(:send_to_room).never
120
+ subject.should_receive(:send_to_room).never
122
121
  subject.react(other_user, room, '@robot wazzup?')
123
122
  end
124
123
 
@@ -126,7 +125,7 @@ describe "a class that inherits", Hipbot::Bot do
126
125
  described_class.on /wazzup\?/, from: [sender.name] do
127
126
  reply('wazzup, tom?')
128
127
  end
129
- subject.expects(:send_to_room).never
128
+ subject.should_receive(:send_to_room).never
130
129
  subject.react(other_user, room, '@robot wazzup?')
131
130
  end
132
131
  end
@@ -138,7 +137,7 @@ describe "a class that inherits", Hipbot::Bot do
138
137
  described_class.on /wazzup\?/, room: 'Test Room' do
139
138
  reply('Wazzup, Tom?')
140
139
  end
141
- subject.expects(:send_to_room).with(room, 'Wazzup, Tom?')
140
+ subject.should_receive(:send_to_room).with(room, 'Wazzup, Tom?')
142
141
  subject.react(sender, room, '@robot wazzup?')
143
142
  end
144
143
 
@@ -146,7 +145,7 @@ describe "a class that inherits", Hipbot::Bot do
146
145
  described_class.on /wazzup\?/, room: ['Test Room 2', 'Test Room'] do
147
146
  reply('wazzup, tom?')
148
147
  end
149
- subject.expects(:send_to_room).with(room, 'wazzup, tom?')
148
+ subject.should_receive(:send_to_room).with(room, 'wazzup, tom?')
150
149
  subject.react(sender, room, '@robot wazzup?')
151
150
  end
152
151
 
@@ -154,7 +153,7 @@ describe "a class that inherits", Hipbot::Bot do
154
153
  described_class.on /wazzup\?/, room: 'Test Room' do
155
154
  reply('wazzup, tom?')
156
155
  end
157
- subject.expects(:send_to_room).never
156
+ subject.should_receive(:send_to_room).never
158
157
  subject.react(sender, other_room, '@robot wazzup?')
159
158
  end
160
159
 
@@ -162,7 +161,7 @@ describe "a class that inherits", Hipbot::Bot do
162
161
  described_class.on /wazzup\?/, room: ['Test Room 2'] do
163
162
  reply('wazzup, tom?')
164
163
  end
165
- subject.expects(:send_to_room).never
164
+ subject.should_receive(:send_to_room).never
166
165
  subject.react(sender, room, '@robot wazzup?')
167
166
  end
168
167
  end
@@ -174,7 +173,7 @@ describe "a class that inherits", Hipbot::Bot do
174
173
  described_class.on /.*/ do
175
174
  reply("you said: #{message.body}")
176
175
  end
177
- subject.expects(:send_to_room).with(room, "you said: hello")
176
+ subject.should_receive(:send_to_room).with(room, "you said: hello")
178
177
  subject.react(user, room, "@robot hello")
179
178
  end
180
179
 
@@ -182,7 +181,7 @@ describe "a class that inherits", Hipbot::Bot do
182
181
  described_class.on /.*/ do
183
182
  reply("you are: #{sender.name}")
184
183
  end
185
- subject.expects(:send_to_room).with(room, "you are: Tom Smith")
184
+ subject.should_receive(:send_to_room).with(room, "you are: Tom Smith")
186
185
  subject.react(user, room, "@robot hello")
187
186
  end
188
187
 
@@ -190,7 +189,7 @@ describe "a class that inherits", Hipbot::Bot do
190
189
  described_class.on /.*/ do
191
190
  reply("recipients: #{message.recipients.join(', ')}")
192
191
  end
193
- subject.expects(:send_to_room).with(room, "recipients: robot, dave")
192
+ subject.should_receive(:send_to_room).with(room, "recipients: robot, dave")
194
193
  subject.react(user, room, "@robot tell @dave hello from me")
195
194
  end
196
195
 
@@ -198,7 +197,7 @@ describe "a class that inherits", Hipbot::Bot do
198
197
  described_class.on /.*/ do
199
198
  reply(message.sender.first_name)
200
199
  end
201
- subject.expects(:send_to_room).with(room, 'Tom')
200
+ subject.should_receive(:send_to_room).with(room, 'Tom')
202
201
  subject.react(user, room, '@robot What\'s my name?')
203
202
  end
204
203
 
@@ -206,7 +205,7 @@ describe "a class that inherits", Hipbot::Bot do
206
205
  described_class.on /.*/ do
207
206
  reply(message.mentions.join(' '))
208
207
  end
209
- subject.expects(:send_to_room).with(room, 'dave rachel')
208
+ subject.should_receive(:send_to_room).with(room, 'dave rachel')
210
209
  subject.react(user, room, '@robot do you know @dave? @dave is @rachel father')
211
210
  end
212
211
  end
@@ -235,12 +234,12 @@ describe "a class that inherits", Hipbot::Bot do
235
234
  }
236
235
 
237
236
  it "should respond to reaction defined in plugin" do
238
- subject.expects(:send_to_room).with(room, 'plugin ack')
237
+ subject.should_receive(:send_to_room).with(room, 'plugin ack')
239
238
  subject.react(sender, room, '@robot plugin respond')
240
239
  end
241
240
 
242
241
  it "should respond to default reaction defined in plugin" do
243
- subject.expects(:send_to_room).with(room, 'plugin default')
242
+ subject.should_receive(:send_to_room).with(room, 'plugin default')
244
243
  subject.react(sender, room, '@robot blahblah')
245
244
  end
246
245
 
@@ -248,12 +247,12 @@ describe "a class that inherits", Hipbot::Bot do
248
247
  described_class.default do
249
248
  reply('bot default')
250
249
  end
251
- subject.expects(:send_to_room).with(room, 'plugin default')
250
+ subject.should_receive(:send_to_room).with(room, 'plugin default')
252
251
  subject.react(sender, room, '@robot blahblah')
253
252
  end
254
253
 
255
254
  it 'should have access to #plugin inside reaction' do
256
- subject.expects(:send_to_room).with(room, 'some method')
255
+ subject.should_receive(:send_to_room).with(room, 'some method')
257
256
  subject.react(sender, room, '@robot plugin method')
258
257
  end
259
258
  end
@@ -262,8 +261,8 @@ describe "a class that inherits", Hipbot::Bot do
262
261
  describe "configurable options" do
263
262
  Hipbot::Configuration::OPTIONS.each do |option|
264
263
  it "should delegate #{option} to configuration" do
265
- value = stub
266
- subject.configuration.expects(option).returns(value)
264
+ value = double
265
+ subject.configuration.should_receive(option).and_return(value)
267
266
  subject.send(option)
268
267
  end
269
268
  end
@@ -3,9 +3,9 @@ require 'spec_helper'
3
3
  describe Hipbot::Match do
4
4
  subject { described_class.new(reaction, message) }
5
5
 
6
- let(:message) { stub(for?: true, body: 'test message') }
6
+ let(:message) { double(for?: true, body: 'test message', private?: false) }
7
7
  let(:reaction) do
8
- stub(
8
+ double(
9
9
  global?: false,
10
10
  from_anywhere?: true,
11
11
  to_anything?: false,
@@ -16,7 +16,11 @@ describe Hipbot::Match do
16
16
  end
17
17
 
18
18
  before do
19
- Hipbot.stubs(:user)
19
+ Hipbot.stub(user: double)
20
+ end
21
+
22
+ after do
23
+ Hipbot.unstub(:user)
20
24
  end
21
25
 
22
26
  describe "#matches?" do
@@ -25,8 +29,8 @@ describe Hipbot::Match do
25
29
  describe "specific regexp" do
26
30
  describe "matching the message body" do
27
31
  before do
28
- message.stubs(body: 'test message')
29
- reaction.stubs(regexps: [/\Atest/])
32
+ message.stub(body: 'test message')
33
+ reaction.stub(regexps: [/\Atest/])
30
34
  end
31
35
 
32
36
  its(:matches?) { should be_true }
@@ -34,8 +38,8 @@ describe Hipbot::Match do
34
38
 
35
39
  describe "not matching message body" do
36
40
  before do
37
- message.stubs(body: 'test message')
38
- reaction.stubs(regexps: [/\Arandom/])
41
+ message.stub(body: 'test message')
42
+ reaction.stub(regexps: [/\Arandom/])
39
43
  end
40
44
 
41
45
  its(:matches?) { should be_false }
@@ -45,8 +49,8 @@ describe Hipbot::Match do
45
49
  describe "multiple regexps" do
46
50
  describe "matching message body" do
47
51
  before do
48
- message.stubs(body: 'test message')
49
- reaction.stubs(regexps: [/\Awat/, /\Atest/])
52
+ message.stub(body: 'test message')
53
+ reaction.stub(regexps: [/\Awat/, /\Atest/])
50
54
  end
51
55
 
52
56
  its(:matches?) { should be_true }
@@ -54,8 +58,8 @@ describe Hipbot::Match do
54
58
 
55
59
  describe "not matching message body" do
56
60
  before do
57
- message.stubs(body: 'test message')
58
- reaction.stubs(regexps: [/\Awat/, /\Arandom/])
61
+ message.stub(body: 'test message')
62
+ reaction.stub(regexps: [/\Awat/, /\Arandom/])
59
63
  end
60
64
 
61
65
  its(:matches?) { should be_false }
@@ -65,7 +69,7 @@ describe Hipbot::Match do
65
69
  describe "specific condition" do
66
70
  describe "returning true" do
67
71
  before do
68
- reaction.stubs(condition: proc { true })
72
+ reaction.stub(condition: proc { true })
69
73
  end
70
74
 
71
75
  its(:matches?) { should be_true }
@@ -73,7 +77,7 @@ describe Hipbot::Match do
73
77
 
74
78
  describe "returning false" do
75
79
  before do
76
- reaction.stubs(condition: proc { false })
80
+ reaction.stub(condition: proc { false })
77
81
  end
78
82
 
79
83
  its(:matches?) { should be_false }
@@ -82,10 +86,10 @@ describe Hipbot::Match do
82
86
  end
83
87
 
84
88
  describe "#invoke" do
85
- let(:response) { stub }
89
+ let(:response) { double }
86
90
 
87
91
  before do
88
- Hipbot::Response.stubs(new: response)
92
+ Hipbot::Response.stub(new: response)
89
93
  end
90
94
 
91
95
  after do
@@ -94,54 +98,54 @@ describe Hipbot::Match do
94
98
 
95
99
  describe "a reaction with no regexps" do
96
100
  before do
97
- reaction.stubs(to_anything?: true)
101
+ reaction.stub(to_anything?: true)
98
102
  end
99
103
 
100
104
  it "calls response with message body" do
101
- response.expects(:invoke).with([message.body])
105
+ response.should_receive(:invoke).with([message.body])
102
106
  end
103
107
  end
104
108
 
105
109
  describe "a reaction with regexp with no variables" do
106
110
  before do
107
- reaction.stubs(regexps: [/.*/])
111
+ reaction.stub(regexps: [/.*/])
108
112
  end
109
113
 
110
114
  it "calls response with message body" do
111
- response.expects(:invoke).with([])
115
+ response.should_receive(:invoke).with([])
112
116
  end
113
117
  end
114
118
 
115
119
  describe "a reaction with regexp with one variable" do
116
120
  before do
117
- message.stubs(body: 'I like trains.')
118
- reaction.stubs(regexps: [/\Ai like (\w+)/i])
121
+ message.stub(body: 'I like trains.')
122
+ reaction.stub(regexps: [/\Ai like (\w+)/i])
119
123
  end
120
124
 
121
125
  it "calls response with variable parsed out of message body" do
122
- response.expects(:invoke).with(['trains'])
126
+ response.should_receive(:invoke).with(['trains'])
123
127
  end
124
128
  end
125
129
 
126
130
  describe "a reaction with regexp with multiple variables" do
127
131
  before do
128
- message.stubs(body: 'I like trains and cars.')
129
- reaction.stubs(regexps: [/\Ai like (\w+) and (\w+)/i])
132
+ message.stub(body: 'I like trains and cars.')
133
+ reaction.stub(regexps: [/\Ai like (\w+) and (\w+)/i])
130
134
  end
131
135
 
132
136
  it "calls response with variables parsed out of message body" do
133
- response.expects(:invoke).with(%w{trains cars})
137
+ response.should_receive(:invoke).with(%w{trains cars})
134
138
  end
135
139
  end
136
140
 
137
141
  describe "a reaction with multiple regexps with variables" do
138
142
  before do
139
- message.stubs(body: 'I enjoy trains and cars.')
140
- reaction.stubs(regexps: [/\AI enjoy (\w+) and (\w+)/, /\Ai like (\w+) and (\w+)/i])
143
+ message.stub(body: 'I enjoy trains and cars.')
144
+ reaction.stub(regexps: [/\AI enjoy (\w+) and (\w+)/, /\Ai like (\w+) and (\w+)/i])
141
145
  end
142
146
 
143
147
  it "calls response with variable parsed out of message body" do
144
- response.expects(:invoke).with(%w{trains cars})
148
+ response.should_receive(:invoke).with(%w{trains cars})
145
149
  end
146
150
  end
147
151
  end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Hipbot::Matchable do
4
+ include Hipbot::Matchable
5
+
6
+ before(:all) do
7
+ Hipbot::Bot.instance.setup
8
+ end
9
+
10
+ let(:sender) { Hipbot::User.new(name: 'test user') }
11
+ let(:room) { Hipbot::Room.new(name: 'test room') }
12
+
13
+ def plugins
14
+ []
15
+ end
16
+
17
+ describe '#react' do
18
+ it 'calls #invoke_all on Match' do
19
+ Hipbot::Match.should_receive(:invoke_all)
20
+ react(sender, room, 'test message')
21
+ end
22
+ end
23
+ end