entangled 0.0.20 → 0.0.21

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Item, type: :model do
4
+ describe 'Attributes' do
5
+ it { is_expected.to respond_to :name }
6
+ it { is_expected.to respond_to :complete }
7
+ it { is_expected.to respond_to :list_id }
8
+ end
9
+
10
+ describe 'Database' do
11
+ it { is_expected.to have_db_column :name }
12
+ it { is_expected.to have_db_column(:complete).of_type(:boolean) }
13
+ it { is_expected.to have_db_column(:list_id).of_type(:integer) }
14
+ end
15
+
16
+ describe 'Associations' do
17
+ it { is_expected.to belong_to :list }
18
+ end
19
+
20
+ describe 'Methods' do
21
+ let(:list) { List.create(name: 'foo') }
22
+ let(:item) { list.items.create(name: 'bar') }
23
+
24
+ describe '#member_channel' do
25
+ it 'has a nested member channel' do
26
+ expect(item.member_channel).to eq "/lists/#{list.to_param}/items/#{item.to_param}"
27
+ end
28
+ end
29
+
30
+ describe '#collection_channel' do
31
+ it 'has a nested collection channel' do
32
+ expect(item.collection_channel).to eq "/lists/#{list.to_param}/items"
33
+ end
34
+ end
35
+ end
36
+
37
+ describe 'Validations' do
38
+ it { is_expected.to validate_presence_of :list }
39
+ end
40
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe List, type: :model do
4
+ describe 'Attributes' do
5
+ it { is_expected.to respond_to :name }
6
+ end
7
+
8
+ describe 'Database' do
9
+ it { is_expected.to have_db_column :name }
10
+ end
11
+
12
+ describe 'Associations' do
13
+ it { is_expected.to have_many(:items).dependent(:destroy) }
14
+ end
15
+
16
+ describe 'Methods' do
17
+ let(:list) { List.create(name: 'foo') }
18
+
19
+ describe '#channel' do
20
+ it 'has the right channel' do
21
+ expect(list.member_channel).to eq "/lists/#{list.to_param}"
22
+ end
23
+ end
24
+
25
+ describe '#collection_channel' do
26
+ it 'has the right channel' do
27
+ expect(list.collection_channel).to eq '/lists'
28
+ end
29
+ end
30
+ end
31
+ end
@@ -5,18 +5,24 @@ RSpec.describe Message, type: :model do
5
5
  it { is_expected.to respond_to :body }
6
6
  end
7
7
 
8
+ describe 'Database' do
9
+ it { is_expected.to have_db_column :body }
10
+ end
11
+
8
12
  describe 'Methods' do
9
- describe '.channel' do
13
+ describe '#collection_channel' do
14
+ let(:message) { Message.create(body: 'foo') }
15
+
10
16
  it 'is the underscore, pluralized model name' do
11
- expect(Message.channel).to eq 'messages'
17
+ expect(message.collection_channel).to eq '/messages'
12
18
  end
13
19
  end
14
20
 
15
- describe '#channel' do
21
+ describe '#member_channel' do
16
22
  let(:message) { Message.create(body: 'foo') }
17
-
18
- it "is the class's channel name plus the member as param" do
19
- expect(message.channel).to eq "messages/#{message.to_param}"
23
+
24
+ it "is the collection channel plus the member as param" do
25
+ expect(message.member_channel).to eq "/messages/#{message.to_param}"
20
26
  end
21
27
  end
22
28
 
@@ -35,7 +41,7 @@ RSpec.describe Message, type: :model do
35
41
  redis = stub_redis
36
42
 
37
43
  expect(redis).to have_received(:publish).with(
38
- Message.channel, {
44
+ message.collection_channel, {
39
45
  action: :create,
40
46
  resource: message
41
47
  }.to_json
@@ -46,7 +52,7 @@ RSpec.describe Message, type: :model do
46
52
  redis = stub_redis
47
53
 
48
54
  expect(redis).to have_received(:publish).with(
49
- message.channel, {
55
+ message.member_channel, {
50
56
  action: :create,
51
57
  resource: message
52
58
  }.to_json
@@ -63,7 +69,7 @@ RSpec.describe Message, type: :model do
63
69
  message.update(body: 'bar')
64
70
 
65
71
  expect(redis).to have_received(:publish).with(
66
- Message.channel, {
72
+ message.collection_channel, {
67
73
  action: :update,
68
74
  resource: message
69
75
  }.to_json
@@ -76,7 +82,7 @@ RSpec.describe Message, type: :model do
76
82
  message.update(body: 'bar')
77
83
 
78
84
  expect(redis).to have_received(:publish).with(
79
- message.channel, {
85
+ message.member_channel, {
80
86
  action: :update,
81
87
  resource: message
82
88
  }.to_json
@@ -93,7 +99,7 @@ RSpec.describe Message, type: :model do
93
99
  message.destroy
94
100
 
95
101
  expect(redis).to have_received(:publish).with(
96
- Message.channel, {
102
+ message.collection_channel, {
97
103
  action: :destroy,
98
104
  resource: message
99
105
  }.to_json
@@ -106,7 +112,7 @@ RSpec.describe Message, type: :model do
106
112
  message.destroy
107
113
 
108
114
  expect(redis).to have_received(:publish).with(
109
- message.channel, {
115
+ message.member_channel, {
110
116
  action: :destroy,
111
117
  resource: message
112
118
  }.to_json
@@ -124,9 +130,6 @@ RSpec.describe Message, type: :model do
124
130
  end
125
131
 
126
132
  describe 'Validations' do
127
- it 'validates presence of the body' do
128
- message = Message.create
129
- expect(message.errors[:body]).to include "can't be blank"
130
- end
133
+ it { is_expected.to validate_presence_of :body }
131
134
  end
132
135
  end
@@ -1,13 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe 'Nested routes', type: :routing do
4
- before(:context) do
5
- # Create arbitrary controllers here rather than
6
- # having a separate file for each in app/controllers
7
- class ListsController < ApplicationController; end
8
- class ItemsController < ApplicationController; end
9
- end
10
-
11
4
  describe 'parent routes' do
12
5
  describe '#index' do
13
6
  it 'matches the lists_path' do
@@ -2,6 +2,7 @@ ENV['RAILS_ENV'] ||= 'test'
2
2
 
3
3
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
4
  require 'rspec/rails'
5
+ require 'shoulda/matchers'
5
6
  require 'bourne'
6
7
  require 'byebug'
7
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: entangled
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20
4
+ version: 0.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Charles Hackethal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-14 00:00:00.000000000 Z
11
+ date: 2015-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: shoulda-matchers
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.6'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.6'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: sqlite3
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -176,6 +190,8 @@ files:
176
190
  - spec/dummy/Rakefile
177
191
  - spec/dummy/app/controllers/application_controller.rb
178
192
  - spec/dummy/app/controllers/concerns/.keep
193
+ - spec/dummy/app/controllers/items_controller.rb
194
+ - spec/dummy/app/controllers/lists_controller.rb
179
195
  - spec/dummy/app/controllers/messages_controller.rb
180
196
  - spec/dummy/app/models/.keep
181
197
  - spec/dummy/app/models/bar.rb
@@ -183,6 +199,8 @@ files:
183
199
  - spec/dummy/app/models/concerns/.keep
184
200
  - spec/dummy/app/models/foo.rb
185
201
  - spec/dummy/app/models/foobar.rb
202
+ - spec/dummy/app/models/item.rb
203
+ - spec/dummy/app/models/list.rb
186
204
  - spec/dummy/app/models/message.rb
187
205
  - spec/dummy/bin/bundle
188
206
  - spec/dummy/bin/rails
@@ -212,23 +230,33 @@ files:
212
230
  - spec/dummy/db/migrate/20150223004834_create_bars.rb
213
231
  - spec/dummy/db/migrate/20150223004841_create_foobars.rb
214
232
  - spec/dummy/db/migrate/20150223004852_create_barfoos.rb
233
+ - spec/dummy/db/migrate/20150314054548_create_lists.rb
234
+ - spec/dummy/db/migrate/20150314055847_create_items.rb
215
235
  - spec/dummy/db/schema.rb
216
236
  - spec/dummy/log/.keep
217
237
  - spec/dummy/public/Gruntfile.js
218
238
  - spec/dummy/public/app/app.js
239
+ - spec/dummy/public/app/controllers/list.js
240
+ - spec/dummy/public/app/controllers/lists.js
219
241
  - spec/dummy/public/app/controllers/message.js
220
242
  - spec/dummy/public/app/controllers/messages.js
221
243
  - spec/dummy/public/app/entangled/entangled.js
244
+ - spec/dummy/public/app/services/list.js
222
245
  - spec/dummy/public/app/services/message.js
223
246
  - spec/dummy/public/bower.json
224
247
  - spec/dummy/public/favicon.ico
225
248
  - spec/dummy/public/index.html
226
249
  - spec/dummy/public/package.json
250
+ - spec/dummy/public/test/controllers/lists_test.js
227
251
  - spec/dummy/public/test/controllers/messages_test.js
252
+ - spec/dummy/public/views/lists/index.html
253
+ - spec/dummy/public/views/lists/show.html
228
254
  - spec/dummy/public/views/messages/index.html
229
255
  - spec/dummy/public/views/messages/show.html
230
256
  - spec/helpers/redis_spec.rb
231
257
  - spec/models/inclusion_exclusion_spec.rb
258
+ - spec/models/item_spec.rb
259
+ - spec/models/list_spec.rb
232
260
  - spec/models/message_spec.rb
233
261
  - spec/routing/inclusion_exclusion_routing_spec.rb
234
262
  - spec/routing/messages_routing_spec.rb
@@ -263,6 +291,8 @@ test_files:
263
291
  - spec/dummy/Rakefile
264
292
  - spec/dummy/app/controllers/application_controller.rb
265
293
  - spec/dummy/app/controllers/concerns/.keep
294
+ - spec/dummy/app/controllers/items_controller.rb
295
+ - spec/dummy/app/controllers/lists_controller.rb
266
296
  - spec/dummy/app/controllers/messages_controller.rb
267
297
  - spec/dummy/app/models/.keep
268
298
  - spec/dummy/app/models/bar.rb
@@ -270,6 +300,8 @@ test_files:
270
300
  - spec/dummy/app/models/concerns/.keep
271
301
  - spec/dummy/app/models/foo.rb
272
302
  - spec/dummy/app/models/foobar.rb
303
+ - spec/dummy/app/models/item.rb
304
+ - spec/dummy/app/models/list.rb
273
305
  - spec/dummy/app/models/message.rb
274
306
  - spec/dummy/bin/bundle
275
307
  - spec/dummy/bin/rails
@@ -299,23 +331,33 @@ test_files:
299
331
  - spec/dummy/db/migrate/20150223004834_create_bars.rb
300
332
  - spec/dummy/db/migrate/20150223004841_create_foobars.rb
301
333
  - spec/dummy/db/migrate/20150223004852_create_barfoos.rb
334
+ - spec/dummy/db/migrate/20150314054548_create_lists.rb
335
+ - spec/dummy/db/migrate/20150314055847_create_items.rb
302
336
  - spec/dummy/db/schema.rb
303
337
  - spec/dummy/log/.keep
304
338
  - spec/dummy/public/Gruntfile.js
305
339
  - spec/dummy/public/app/app.js
340
+ - spec/dummy/public/app/controllers/list.js
341
+ - spec/dummy/public/app/controllers/lists.js
306
342
  - spec/dummy/public/app/controllers/message.js
307
343
  - spec/dummy/public/app/controllers/messages.js
308
344
  - spec/dummy/public/app/entangled/entangled.js
345
+ - spec/dummy/public/app/services/list.js
309
346
  - spec/dummy/public/app/services/message.js
310
347
  - spec/dummy/public/bower.json
311
348
  - spec/dummy/public/favicon.ico
312
349
  - spec/dummy/public/index.html
313
350
  - spec/dummy/public/package.json
351
+ - spec/dummy/public/test/controllers/lists_test.js
314
352
  - spec/dummy/public/test/controllers/messages_test.js
353
+ - spec/dummy/public/views/lists/index.html
354
+ - spec/dummy/public/views/lists/show.html
315
355
  - spec/dummy/public/views/messages/index.html
316
356
  - spec/dummy/public/views/messages/show.html
317
357
  - spec/helpers/redis_spec.rb
318
358
  - spec/models/inclusion_exclusion_spec.rb
359
+ - spec/models/item_spec.rb
360
+ - spec/models/list_spec.rb
319
361
  - spec/models/message_spec.rb
320
362
  - spec/routing/inclusion_exclusion_routing_spec.rb
321
363
  - spec/routing/messages_routing_spec.rb