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.
- checksums.yaml +4 -4
- data/features/step_definitions/api_steps.rb +3 -3
- data/features/step_definitions/channel_steps.rb +1 -1
- data/features/step_definitions/event_steps.rb +1 -1
- data/features/support/application/public/javascripts/vendor/{pusher-2.1.6.js → pusher-2.2.1.js} +890 -624
- data/features/support/application/views/index.erb +1 -1
- data/features/support/webhooks.rb +1 -7
- data/lib/pusher-fake.rb +1 -1
- data/lib/pusher-fake/channel/private.rb +1 -1
- data/lib/pusher-fake/channel/public.rb +1 -1
- data/lib/pusher-fake/connection.rb +34 -4
- data/lib/pusher-fake/server/application.rb +10 -3
- data/lib/pusher-fake/webhook.rb +1 -0
- data/spec/lib/pusher-fake/channel/private_spec.rb +3 -4
- data/spec/lib/pusher-fake/channel/public_spec.rb +4 -6
- data/spec/lib/pusher-fake/connection_spec.rb +186 -132
- data/spec/lib/pusher-fake/server/application_spec.rb +37 -16
- data/spec/lib/pusher-fake/webhook_spec.rb +7 -0
- data/spec/lib/pusher_fake_spec.rb +1 -1
- data/spec/support/have_configuration_option_matcher.rb +1 -1
- metadata +21 -27
@@ -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)
|
172
|
-
let(:data)
|
173
|
-
let(:
|
174
|
-
let(:
|
175
|
-
let(:
|
176
|
-
let(:
|
177
|
-
let(:
|
178
|
-
let(:
|
179
|
-
let(:
|
180
|
-
let(:socket_id)
|
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
|
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(
|
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) {
|
387
|
-
let(:user_2) {
|
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.
|
402
|
-
{ id: user_2.
|
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
|
@@ -9,7 +9,7 @@ RSpec::Matchers.define :have_configuration_option do |option|
|
|
9
9
|
@default = default
|
10
10
|
end
|
11
11
|
|
12
|
-
|
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|