entangled 0.0.20 → 0.0.21

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