pusher-fake 0.14.0 → 1.0.0

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.
@@ -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