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