pusher-fake 0.14.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -168,21 +168,23 @@ describe PusherFake::Server::Application, ".call, raising an error" do
168
168
  end
169
169
 
170
170
  describe PusherFake::Server::Application, ".events" do
171
- let(:body) { stub(read: json) }
172
- let(:data) { mock }
173
- let(:json) { mock }
174
- let(:name) { "event-name" }
175
- let(:event) { { "channels" => channels, "name" => name, "data" => data, "socket_id" => socket_id } }
176
- let(:request) { stub(body: body) }
177
- let(:channels) { ["channel-1", "channel-2"] }
178
- let(:channel_1) { stub(emit: true) }
179
- let(:channel_2) { stub(emit: true) }
180
- let(:socket_id) { stub }
171
+ let(:body) { stub(read: event_json) }
172
+ let(:data) { { "example" => "data" } }
173
+ let(:name) { "event-name" }
174
+ let(:event) { { "channels" => channels, "name" => name, "data" => data_json, "socket_id" => socket_id } }
175
+ let(:request) { stub(body: body) }
176
+ let(:channels) { ["channel-1", "channel-2"] }
177
+ let(:channel_1) { stub(emit: true) }
178
+ let(:channel_2) { stub(emit: true) }
179
+ let(:data_json) { data.to_json }
180
+ let(:socket_id) { stub }
181
+ let(:event_json) { mock }
181
182
 
182
183
  subject { PusherFake::Server::Application }
183
184
 
184
185
  before do
185
- MultiJson.stubs(load: event)
186
+ MultiJson.stubs(:load).with(event_json).returns(event)
187
+ MultiJson.stubs(:load).with(data_json).returns(data)
186
188
  PusherFake::Channel.stubs(:factory).with(channels[0]).returns(channel_1)
187
189
  PusherFake::Channel.stubs(:factory).with(channels[1]).returns(channel_2)
188
190
  end
@@ -190,7 +192,26 @@ describe PusherFake::Server::Application, ".events" do
190
192
  it "parses the request body as JSON" do
191
193
  subject.events(request)
192
194
 
193
- expect(MultiJson).to have_received(:load).with(json)
195
+ expect(MultiJson).to have_received(:load).with(event_json)
196
+ end
197
+
198
+ it "parses the event data as JSON" do
199
+ subject.events(request)
200
+
201
+ expect(MultiJson).to have_received(:load).with(data_json)
202
+ end
203
+
204
+ it "handles invalid JSON for event data" do
205
+ event["data"] = data = "fake"
206
+
207
+ MultiJson.stubs(:load).with(data).raises(MultiJson::LoadError)
208
+
209
+ expect {
210
+ subject.events(request)
211
+ }.to_not raise_error
212
+
213
+ expect(channel_1).to have_received(:emit).with(name, data, socket_id: socket_id)
214
+ expect(channel_2).to have_received(:emit).with(name, data, socket_id: socket_id)
194
215
  end
195
216
 
196
217
  it "creates channels by name" do
@@ -383,8 +404,8 @@ end
383
404
 
384
405
  describe PusherFake::Server::Application, ".users, for an occupied channel" do
385
406
  let(:name) { "public-1" }
386
- let(:user_1) { mock }
387
- let(:user_2) { mock }
407
+ let(:user_1) { stub(id: "1") }
408
+ let(:user_2) { stub(id: "2") }
388
409
  let(:channel) { stub(connections: [user_1, user_2]) }
389
410
  let(:channels) { { name => channel } }
390
411
 
@@ -398,8 +419,8 @@ describe PusherFake::Server::Application, ".users, for an occupied channel" do
398
419
  hash = subject.users(name)
399
420
 
400
421
  expect(hash).to eq({ users: [
401
- { id: user_1.object_id },
402
- { id: user_2.object_id }
422
+ { id: user_1.id },
423
+ { id: user_2.id }
403
424
  ] })
404
425
  end
405
426
  end
@@ -14,6 +14,7 @@ describe PusherFake::Webhook, ".trigger" do
14
14
  before do
15
15
  OpenSSL::HMAC.stubs(hexdigest: signature)
16
16
  EventMachine::HttpRequest.stubs(new: http)
17
+ PusherFake.stubs(:log)
17
18
  PusherFake.stubs(configuration: configuration)
18
19
  end
19
20
 
@@ -42,4 +43,10 @@ describe PusherFake::Webhook, ".trigger" do
42
43
  }
43
44
  )
44
45
  end
46
+
47
+ it "logs sending the hook" do
48
+ subject.trigger(name, data)
49
+
50
+ expect(PusherFake).to have_received(:log).with("HOOK: #{payload}")
51
+ end
45
52
  end
@@ -78,7 +78,7 @@ describe PusherFake, ".log" do
78
78
 
79
79
  subject.log(message)
80
80
 
81
- expect(logger).to have_received(:<<).with(message + "\n").once
81
+ expect(logger).to have_received(:<<).with("#{message}\n").once
82
82
  end
83
83
 
84
84
  it "does not forward message when not verbose" do
@@ -9,7 +9,7 @@ RSpec::Matchers.define :have_configuration_option do |option|
9
9
  @default = default
10
10
  end
11
11
 
12
- failure_message_for_should do |configuration|
12
+ failure_message do |configuration|
13
13
  description = "expected configuration to have #{option.inspect} option"
14
14
  description << " with a default of #{@default.inspect}" unless @default.nil?
15
15
  description
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pusher-fake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tristan Dunn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-20 00:00:00.000000000 Z
11
+ date: 2014-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: em-http-request
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 1.0.0
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: 1.2.0
19
+ version: '1.1'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 1.0.0
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: 1.2.0
26
+ version: '1.1'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: em-websocket
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -106,14 +100,14 @@ dependencies:
106
100
  requirements:
107
101
  - - '='
108
102
  - !ruby/object:Gem::Version
109
- version: 1.3.10
103
+ version: 1.3.15
110
104
  type: :development
111
105
  prerelease: false
112
106
  version_requirements: !ruby/object:Gem::Requirement
113
107
  requirements:
114
108
  - - '='
115
109
  - !ruby/object:Gem::Version
116
- version: 1.3.10
110
+ version: 1.3.15
117
111
  - !ruby/object:Gem::Dependency
118
112
  name: pusher
119
113
  requirement: !ruby/object:Gem::Requirement
@@ -134,70 +128,70 @@ dependencies:
134
128
  requirements:
135
129
  - - '='
136
130
  - !ruby/object:Gem::Version
137
- version: 10.1.1
131
+ version: 10.3.2
138
132
  type: :development
139
133
  prerelease: false
140
134
  version_requirements: !ruby/object:Gem::Requirement
141
135
  requirements:
142
136
  - - '='
143
137
  - !ruby/object:Gem::Version
144
- version: 10.1.1
138
+ version: 10.3.2
145
139
  - !ruby/object:Gem::Dependency
146
140
  name: redcarpet
147
141
  requirement: !ruby/object:Gem::Requirement
148
142
  requirements:
149
143
  - - '='
150
144
  - !ruby/object:Gem::Version
151
- version: 3.1.1
145
+ version: 3.1.2
152
146
  type: :development
153
147
  prerelease: false
154
148
  version_requirements: !ruby/object:Gem::Requirement
155
149
  requirements:
156
150
  - - '='
157
151
  - !ruby/object:Gem::Version
158
- version: 3.1.1
152
+ version: 3.1.2
159
153
  - !ruby/object:Gem::Dependency
160
154
  name: rspec
161
155
  requirement: !ruby/object:Gem::Requirement
162
156
  requirements:
163
157
  - - '='
164
158
  - !ruby/object:Gem::Version
165
- version: 2.14.1
159
+ version: 3.0.0
166
160
  type: :development
167
161
  prerelease: false
168
162
  version_requirements: !ruby/object:Gem::Requirement
169
163
  requirements:
170
164
  - - '='
171
165
  - !ruby/object:Gem::Version
172
- version: 2.14.1
166
+ version: 3.0.0
173
167
  - !ruby/object:Gem::Dependency
174
168
  name: sinatra
175
169
  requirement: !ruby/object:Gem::Requirement
176
170
  requirements:
177
171
  - - '='
178
172
  - !ruby/object:Gem::Version
179
- version: 1.4.4
173
+ version: 1.4.5
180
174
  type: :development
181
175
  prerelease: false
182
176
  version_requirements: !ruby/object:Gem::Requirement
183
177
  requirements:
184
178
  - - '='
185
179
  - !ruby/object:Gem::Version
186
- version: 1.4.4
180
+ version: 1.4.5
187
181
  - !ruby/object:Gem::Dependency
188
182
  name: yard
189
183
  requirement: !ruby/object:Gem::Requirement
190
184
  requirements:
191
185
  - - '='
192
186
  - !ruby/object:Gem::Version
193
- version: 0.8.7.3
187
+ version: 0.8.7.4
194
188
  type: :development
195
189
  prerelease: false
196
190
  version_requirements: !ruby/object:Gem::Requirement
197
191
  requirements:
198
192
  - - '='
199
193
  - !ruby/object:Gem::Version
200
- version: 0.8.7.3
194
+ version: 0.8.7.4
201
195
  description: A fake Pusher server for development and testing.
202
196
  email: hello@tristandunn.com
203
197
  executables: []
@@ -218,7 +212,7 @@ files:
218
212
  - features/step_definitions/presence_steps.rb
219
213
  - features/step_definitions/webhook_steps.rb
220
214
  - features/support/application.rb
221
- - features/support/application/public/javascripts/vendor/pusher-2.1.6.js
215
+ - features/support/application/public/javascripts/vendor/pusher-2.2.1.js
222
216
  - features/support/application/views/index.erb
223
217
  - features/support/coveralls.rb
224
218
  - features/support/environment.rb
@@ -270,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
270
264
  version: '0'
271
265
  requirements: []
272
266
  rubyforge_project:
273
- rubygems_version: 2.2.0
267
+ rubygems_version: 2.2.2
274
268
  signing_key:
275
269
  specification_version: 4
276
270
  summary: A fake Pusher server for development and testing.
@@ -288,7 +282,7 @@ test_files:
288
282
  - features/step_definitions/navigation_steps.rb
289
283
  - features/step_definitions/presence_steps.rb
290
284
  - features/step_definitions/webhook_steps.rb
291
- - features/support/application/public/javascripts/vendor/pusher-2.1.6.js
285
+ - features/support/application/public/javascripts/vendor/pusher-2.2.1.js
292
286
  - features/support/application/views/index.erb
293
287
  - features/support/application.rb
294
288
  - features/support/coveralls.rb