date_book 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -1
  3. data/.rubocop_todo.yml +2 -1
  4. data/.travis.yml +3 -0
  5. data/Gemfile +16 -4
  6. data/Gemfile.lock +14 -2
  7. data/VERSION +1 -1
  8. data/app/assets/javascripts/date_book/calendar_events.js +3 -3
  9. data/app/assets/stylesheets/date_book.css.scss +31 -2
  10. data/app/controllers/date_book/calendars_controller.rb +30 -19
  11. data/app/controllers/date_book/date_book_controller.rb +1 -1
  12. data/app/controllers/date_book/events_controller.rb +60 -62
  13. data/app/controllers/date_book/graphql_controller.rb +10 -11
  14. data/app/graphql/date_book_schema.rb +4 -4
  15. data/app/graphql/types/calendar_type.rb +4 -2
  16. data/app/graphql/types/date_time_type.rb +9 -5
  17. data/app/graphql/types/event_occurrence_type.rb +4 -2
  18. data/app/graphql/types/event_type.rb +4 -2
  19. data/app/graphql/types/mutation_type.rb +3 -1
  20. data/app/graphql/types/query_type.rb +12 -26
  21. data/app/helpers/date_book/application_helper.rb +4 -7
  22. data/app/helpers/date_book/events_helper.rb +43 -23
  23. data/app/views/date_book/application/_date_range.html.haml +3 -3
  24. data/app/views/date_book/calendars/index.html.haml +19 -3
  25. data/app/views/date_book/calendars/show.html.haml +29 -4
  26. data/app/views/date_book/events/_event.json.jbuilder +3 -1
  27. data/app/views/date_book/events/_form.html.haml +4 -4
  28. data/app/views/date_book/events/_occurrence_dates.html.haml +3 -3
  29. data/app/views/date_book/events/fields/_date.html.haml +1 -1
  30. data/app/views/date_book/events/fields/_day.html.haml +1 -1
  31. data/app/views/date_book/events/fields/_day_of_week.html.haml +3 -3
  32. data/app/views/date_book/events/fields/_duration.html.haml +3 -3
  33. data/app/views/date_book/events/fields/_interval.html.haml +1 -1
  34. data/app/views/date_book/events/fields/_time.html.haml +1 -1
  35. data/app/views/date_book/events/index.html.haml +1 -1
  36. data/app/views/date_book/events/rules/_daily.html.haml +3 -3
  37. data/app/views/date_book/events/rules/_monthly.html.haml +4 -4
  38. data/app/views/date_book/events/rules/_singular.html.haml +3 -3
  39. data/app/views/date_book/events/rules/_weekly.html.haml +4 -4
  40. data/app/views/date_book/events/show.html.haml +1 -1
  41. data/app/views/layouts/_date_book_scripts.html.haml +2 -4
  42. data/config/locales/en.yml +2 -0
  43. data/config/routes.rb +1 -1
  44. data/date_book.gemspec +25 -22
  45. data/db/migrate/20170807133845_create_calendars.rb +3 -0
  46. data/db/migrate/20170807133846_create_events.rb +3 -0
  47. data/db/migrate/20170807133847_create_schedules.rb +9 -6
  48. data/db/migrate/20170807133848_add_fields_to_schedule.rb +3 -0
  49. data/db/migrate/20170807133849_create_event_occurrences.rb +4 -3
  50. data/db/migrate/20170807133850_add_fields_to_event_occurrences.rb +3 -0
  51. data/lib/date_book.rb +11 -2
  52. data/lib/date_book/concerns/ability.rb +9 -12
  53. data/lib/date_book/concerns/acts_as_calendar.rb +5 -6
  54. data/lib/date_book/concerns/acts_as_event.rb +30 -9
  55. data/lib/date_book/concerns/acts_as_event_occurrence.rb +21 -9
  56. data/lib/date_book/concerns/acts_as_ownable.rb +9 -3
  57. data/lib/date_book/concerns/acts_as_owner.rb +5 -6
  58. data/lib/date_book/concerns/acts_as_schedule.rb +14 -7
  59. data/lib/date_book/configuration.rb +14 -11
  60. data/lib/date_book/engine.rb +7 -5
  61. data/lib/date_book/version.rb +2 -0
  62. data/lib/generators/date_book/install/install_generator.rb +27 -29
  63. data/lib/generators/date_book/install/templates/app/models/calendar.rb +4 -1
  64. data/lib/generators/date_book/install/templates/app/models/event.rb +4 -1
  65. data/lib/generators/date_book/install/templates/app/models/event_occurrence.rb +4 -1
  66. data/lib/generators/date_book/install/templates/app/models/schedule.rb +4 -1
  67. data/spec/abilities/event_spec.rb +1 -1
  68. data/spec/controllers/date_book/calendars_controller_spec.rb +48 -20
  69. data/spec/controllers/date_book/events_controller_spec.rb +145 -39
  70. data/spec/dummy/app/models/calendar.rb +3 -1
  71. data/spec/dummy/app/models/event.rb +3 -1
  72. data/spec/dummy/app/models/event_occurrence.rb +3 -1
  73. data/spec/dummy/app/models/role.rb +7 -5
  74. data/spec/dummy/app/models/schedule.rb +3 -1
  75. data/spec/dummy/app/models/user.rb +3 -3
  76. data/spec/dummy/config/initializers/devise.rb +61 -40
  77. data/spec/dummy/config/initializers/high_voltage.rb +2 -0
  78. data/spec/dummy/config/initializers/rolify.rb +5 -2
  79. data/spec/dummy/config/routes.rb +6 -9
  80. data/spec/dummy/db/development.sqlite3 +0 -0
  81. data/spec/dummy/db/migrate/20170728171103_create_users_table.rb +2 -0
  82. data/spec/dummy/db/migrate/20170807134122_add_devise_to_users.rb +4 -3
  83. data/spec/dummy/db/migrate/20170807134128_rolify_create_roles.rb +6 -4
  84. data/spec/dummy/db/migrate/{20170808150915_create_calendars.date_book.rb → 20170808200808_create_calendars.date_book.rb} +3 -0
  85. data/spec/dummy/db/migrate/{20170808150916_create_events.date_book.rb → 20170808200809_create_events.date_book.rb} +3 -0
  86. data/spec/dummy/db/migrate/{20170808150917_create_schedules.date_book.rb → 20170808200810_create_schedules.date_book.rb} +9 -6
  87. data/spec/dummy/db/migrate/{20170808150918_add_fields_to_schedule.date_book.rb → 20170808200811_add_fields_to_schedule.date_book.rb} +3 -0
  88. data/spec/dummy/db/migrate/{20170808150919_create_event_occurrences.date_book.rb → 20170808200812_create_event_occurrences.date_book.rb} +4 -3
  89. data/spec/dummy/db/migrate/{20170808150920_add_fields_to_event_occurrences.date_book.rb → 20170808200813_add_fields_to_event_occurrences.date_book.rb} +3 -0
  90. data/spec/dummy/db/schema.rb +1 -1
  91. data/spec/dummy/db/seeds/calendars.seeds.rb +2 -1
  92. data/spec/dummy/db/seeds/events.seeds.rb +5 -5
  93. data/spec/dummy/db/seeds/users.seeds.rb +3 -1
  94. data/spec/dummy/db/test.sqlite3 +0 -0
  95. data/spec/dummy/lib/basic_benchmark.rb +2 -0
  96. data/spec/factories/calendars.rb +2 -0
  97. data/spec/factories/events.rb +2 -0
  98. data/spec/factories/roles.rb +2 -1
  99. data/spec/factories/users.rb +2 -0
  100. data/spec/features/calendars_spec.rb +47 -5
  101. data/spec/features/events_spec.rb +35 -9
  102. data/spec/helpers/date_book/application_helper_spec.rb +32 -0
  103. data/spec/helpers/date_book/events_helper_spec.rb +181 -13
  104. data/spec/models/calendar_spec.rb +3 -1
  105. data/spec/models/event_spec.rb +3 -1
  106. data/spec/models/role_spec.rb +1 -0
  107. data/spec/rails_helper.rb +6 -1
  108. data/spec/requests/date_book/api_spec.rb +76 -0
  109. data/spec/routing/date_book/calendars_routing_spec.rb +4 -2
  110. data/spec/routing/date_book/events_routing_spec.rb +48 -11
  111. data/spec/support/controller_behaviors.rb +2 -0
  112. data/spec/support/controller_macros.rb +3 -1
  113. data/spec/support/factory_girl.rb +2 -0
  114. data/spec/support/feature_behaviors.rb +9 -9
  115. data/spec/support/loaded_site.rb +2 -0
  116. data/spec/support/loaded_site/calendars.rb +2 -0
  117. data/spec/support/loaded_site/events.rb +3 -1
  118. data/spec/support/loaded_site/users.rb +2 -0
  119. data/spec/support/request_behaviors.rb +12 -63
  120. data/spec/support/shared_connection.rb +2 -0
  121. data/spec/support/utilities.rb +6 -5
  122. metadata +79 -42
  123. data/app/graphql/types/profile_type.rb +0 -7
  124. data/app/helpers/date_book/calendar_helper.rb +0 -4
  125. data/app/views/date_book/application/_all_day_checkbox.html.haml +0 -1
  126. data/bin/rails +0 -15
  127. data/spec/helpers/date_book/calendar_helper_spec.rb +0 -17
  128. data/spec/requests/date_book/events_spec.rb +0 -56
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Calendar model, used by DateBook to store groups of events
1
4
  class Calendar < ApplicationRecord
2
5
  acts_as_calendar
3
- end
6
+ end
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Event model, used by DateBook to store events (recurring and not)
1
4
  class Event < ApplicationRecord
2
5
  acts_as_event
3
- end
6
+ end
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # EventOccurrence model, used by DateBook to store times events occur
1
4
  class EventOccurrence < ApplicationRecord
2
5
  acts_as_event_occurrence
3
- end
6
+ end
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Schedule model, used by DateBook to store event recurrence rules
1
4
  class Schedule < Schedulable::Model::Schedule
2
5
  acts_as_schedule
3
- end
6
+ end
@@ -19,7 +19,7 @@ describe 'Abilities on Events', folder: :abilities do
19
19
  it { should_not be_able_to(:create, Event) }
20
20
  end
21
21
  context 'when logged in as regular user' do
22
- let(:my_event) { science_fiction_club_event }
22
+ let(:my_event) { science_fiction_club }
23
23
  let(:other_event) { monday_event }
24
24
  let(:user) { regular_user }
25
25
  subject(:ability) { Ability.new(user) }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_helper'
2
4
 
3
5
  module DateBook
@@ -7,16 +9,22 @@ module DateBook
7
9
  include_context 'loaded site'
8
10
  include ControllerMacros
9
11
 
10
- # This should return the minimal set of attributes required to create a valid
11
- # Calendar. As you add validations to Calendar, be sure to
12
- # adjust the attributes here as well.
13
- let(:valid_attributes) {
14
- { name: 'Test Calendar', schedule_attributes: { date: 1.hour.ago.to_date, time: 1.hour.ago} }
15
- }
12
+ # This should return the minimal set of attributes required to create a
13
+ # valid Calendar. As you add validations to Calendar, be sure to adjust the
14
+ # attributes here as well.
15
+ let(:valid_attributes) do
16
+ {
17
+ name: 'Test Calendar',
18
+ schedule_attributes: {
19
+ date: 1.hour.ago.to_date,
20
+ time: 1.hour.ago
21
+ }
22
+ }
23
+ end
16
24
 
17
- let(:invalid_attributes) {
25
+ let(:invalid_attributes) do
18
26
  { name: nil, schedule_attributes: nil }
19
- }
27
+ end
20
28
 
21
29
  describe 'GET #index' do
22
30
  before do
@@ -92,7 +100,6 @@ module DateBook
92
100
  end
93
101
  end
94
102
 
95
-
96
103
  describe 'POST #create' do
97
104
  describe 'when not logged in' do
98
105
  before do
@@ -121,7 +128,7 @@ module DateBook
121
128
  login_user regular_user
122
129
  end
123
130
  it 'results in a new calendar' do
124
- expect { post(:create, params: { calendar: valid_attributes }) }
131
+ expect { post(:create, params: { calendar: valid_attributes }) }
125
132
  .to change { Calendar.count(:id) }.by(1)
126
133
  end
127
134
  end
@@ -142,8 +149,8 @@ module DateBook
142
149
  login_user regular_user
143
150
  end
144
151
  it 'does not result in a new calendar' do
145
- expect { post(:create, params: { calendar: invalid_attributes }) }
146
- .to_not change { Calendar.count(:id) }
152
+ expect { post(:create, params: { calendar: invalid_attributes }) }
153
+ .to_not(change { Calendar.count(:id) })
147
154
  end
148
155
  end
149
156
  end
@@ -153,7 +160,13 @@ module DateBook
153
160
  describe 'when not logged in' do
154
161
  before do
155
162
  # Here's where we are *not* logging in
156
- put :update, params: { id: 'regular-calendar', calendar: valid_attributes }
163
+ put(
164
+ :update,
165
+ params: {
166
+ id: 'regular-calendar',
167
+ calendar: valid_attributes
168
+ }
169
+ )
157
170
  end
158
171
  it_should_behave_like 'a redirect to the home page'
159
172
  end
@@ -161,7 +174,13 @@ module DateBook
161
174
  describe 'as someone other than the owner' do
162
175
  before do
163
176
  login_user other_user
164
- put :update, params: { id: 'regular-calendar', calendar: valid_attributes }
177
+ put(
178
+ :update,
179
+ params: {
180
+ id: 'regular-calendar',
181
+ calendar: valid_attributes
182
+ }
183
+ )
165
184
  end
166
185
  it_should_behave_like 'a 403 Forbidden error'
167
186
  end
@@ -169,10 +188,19 @@ module DateBook
169
188
  describe 'with valid params' do
170
189
  before do
171
190
  login_user regular_user
172
- put :update, params: { id: 'regular-calendar', calendar: valid_attributes }
191
+ put(
192
+ :update,
193
+ params: {
194
+ id: 'regular-calendar',
195
+ calendar: valid_attributes
196
+ }
197
+ )
173
198
  end
174
199
  # Note that slug does not change
175
- it_should_behave_like 'a redirect to', '/date_book/calendars/regular-calendar'
200
+ it_should_behave_like(
201
+ 'a redirect to',
202
+ '/date_book/calendars/regular-calendar'
203
+ )
176
204
 
177
205
  describe 'updates @calendar' do
178
206
  subject { regular_calendar.reload }
@@ -189,9 +217,10 @@ module DateBook
189
217
  login_user regular_user
190
218
  put(
191
219
  :update, params: {
192
- id: 'regular-calendar',
193
- calendar: invalid_attributes
194
- })
220
+ id: 'regular-calendar',
221
+ calendar: invalid_attributes
222
+ }
223
+ )
195
224
  end
196
225
  it_should_behave_like 'a successful page', which_renders: 'edit'
197
226
 
@@ -254,6 +283,5 @@ module DateBook
254
283
  end
255
284
  end
256
285
  end
257
-
258
286
  end
259
287
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails_helper'
2
4
 
3
5
  module DateBook
@@ -7,16 +9,19 @@ module DateBook
7
9
  include_context 'loaded site'
8
10
  include ControllerMacros
9
11
 
10
- # This should return the minimal set of attributes required to create a valid
11
- # Event. As you add validations to Event, be sure to
12
- # adjust the attributes here as well.
13
- let(:valid_attributes) {
14
- { name: 'Test Event', schedule_attributes: { date: 1.hour.ago.to_date, time: 1.hour.ago} }
15
- }
12
+ # This should return the minimal set of attributes required to create a
13
+ # valid Event. As you add validations to Event, be sure to adjust the
14
+ # attributes here as well.
15
+ let(:valid_attributes) do
16
+ {
17
+ name: 'Test Event',
18
+ schedule_attributes: { date: 1.hour.ago.to_date, time: 1.hour.ago }
19
+ }
20
+ end
16
21
 
17
- let(:invalid_attributes) {
22
+ let(:invalid_attributes) do
18
23
  { name: nil, schedule_attributes: nil }
19
- }
24
+ end
20
25
 
21
26
  describe 'GET #index' do
22
27
  describe 'without a query' do
@@ -33,7 +38,10 @@ module DateBook
33
38
  end
34
39
  describe 'with a query' do
35
40
  before do
36
- get :index, params: { start: Time.zone.now, calendar_id: 'admin-calendar' }
41
+ get(
42
+ :index,
43
+ params: { start: Time.zone.now, calendar_id: 'admin-calendar' }
44
+ )
37
45
  end
38
46
  it_should_behave_like 'a successful page', which_renders: 'index'
39
47
 
@@ -47,14 +55,20 @@ module DateBook
47
55
 
48
56
  describe 'GET #show' do
49
57
  before do
50
- get :show, params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
58
+ get(
59
+ :show,
60
+ params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
61
+ )
51
62
  end
52
63
  it_should_behave_like 'a successful page', which_renders: 'show'
53
64
  end
54
65
 
55
66
  describe 'GET #popover' do
56
67
  before do
57
- get :popover, params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
68
+ get(
69
+ :popover,
70
+ params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
71
+ )
58
72
  end
59
73
  it_should_behave_like 'a successful page', which_renders: 'popover'
60
74
  end
@@ -63,14 +77,14 @@ module DateBook
63
77
  describe 'when not logged in' do
64
78
  before do
65
79
  # Here's where we are *not* logging in
66
- get :new, params: { calendar_id: 'regular-calendar'}
80
+ get :new, params: { calendar_id: 'regular-calendar' }
67
81
  end
68
82
  it_should_behave_like 'a redirect to the home page'
69
83
  end
70
84
  describe 'when logged in' do
71
85
  before do
72
86
  login_user regular_user
73
- get :new, params: { calendar_id: 'regular-calendar'}
87
+ get :new, params: { calendar_id: 'regular-calendar' }
74
88
  end
75
89
  it_should_behave_like 'a successful page', which_renders: 'new'
76
90
 
@@ -86,7 +100,10 @@ module DateBook
86
100
  describe 'when not logged in' do
87
101
  before do
88
102
  # Here's where we are *not* logging in
89
- get :edit, params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
103
+ get(
104
+ :edit,
105
+ params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
106
+ )
90
107
  end
91
108
  it_should_behave_like 'a redirect to the home page'
92
109
  end
@@ -94,31 +111,42 @@ module DateBook
94
111
  describe 'as someone other than the owner' do
95
112
  before do
96
113
  login_user regular_user
97
- get :edit, params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
114
+ get(
115
+ :edit,
116
+ params: { id: 'the-work-week', calendar_id: 'admin-calendar' }
117
+ )
98
118
  end
99
119
  it_should_behave_like 'a 403 Forbidden error'
100
120
  end
101
121
  describe 'as the owner' do
102
122
  before do
103
123
  login_user regular_user
104
- get :edit, params: { id: 'science-fiction-club', calendar_id: 'regular-calendar' }
124
+ get(
125
+ :edit,
126
+ params: {
127
+ id: 'science-fiction-club',
128
+ calendar_id: 'regular-calendar'
129
+ }
130
+ )
105
131
  end
106
132
  it_should_behave_like 'a successful page', which_renders: 'edit'
107
133
 
108
134
  describe 'loads requested event into @event' do
109
135
  subject { assigns(:event) }
110
- it { should eq science_fiction_club_event }
136
+ it { should eq science_fiction_club }
111
137
  end
112
138
  end
113
139
  end
114
140
  end
115
141
 
116
-
117
142
  describe 'POST #create' do
118
143
  describe 'when not logged in' do
119
144
  before do
120
145
  # Here's where we are *not* logging in
121
- post :create, params: { event: valid_attributes, calendar_id: 'regular-calendar' }
146
+ post(
147
+ :create,
148
+ params: { event: valid_attributes, calendar_id: 'regular-calendar' }
149
+ )
122
150
  end
123
151
  it_should_behave_like 'a redirect to the home page'
124
152
  end
@@ -126,7 +154,13 @@ module DateBook
126
154
  describe 'with valid params' do
127
155
  before do
128
156
  login_user regular_user
129
- post :create, params: { event: valid_attributes, calendar_id: 'regular-calendar' }
157
+ post(
158
+ :create,
159
+ params: {
160
+ event: valid_attributes,
161
+ calendar_id: 'regular-calendar'
162
+ }
163
+ )
130
164
  end
131
165
  it_should_behave_like(
132
166
  'a redirect to',
@@ -142,14 +176,27 @@ module DateBook
142
176
  login_user regular_user
143
177
  end
144
178
  it 'results in a new event' do
145
- expect { post(:create, params: { event: valid_attributes, calendar_id: 'regular-calendar' }) }
146
- .to change { Event.count(:id) }.by(1)
179
+ expect do
180
+ post(
181
+ :create,
182
+ params: {
183
+ event: valid_attributes,
184
+ calendar_id: 'regular-calendar'
185
+ }
186
+ )
187
+ end.to change { Event.count(:id) }.by(1)
147
188
  end
148
189
  end
149
190
  describe 'with invalid params' do
150
191
  before do
151
192
  login_user regular_user
152
- post :create, params: { event: invalid_attributes, calendar_id: 'regular-calendar' }
193
+ post(
194
+ :create,
195
+ params: {
196
+ event: invalid_attributes,
197
+ calendar_id: 'regular-calendar'
198
+ }
199
+ )
153
200
  end
154
201
  it_should_behave_like 'a successful page', which_renders: 'new'
155
202
 
@@ -163,8 +210,15 @@ module DateBook
163
210
  login_user regular_user
164
211
  end
165
212
  it 'does not result in a new event' do
166
- expect { post(:create, params: { event: invalid_attributes, calendar_id: 'regular-calendar' }) }
167
- .to_not change { Event.count(:id) }
213
+ expect do
214
+ post(
215
+ :create,
216
+ params: {
217
+ event: invalid_attributes,
218
+ calendar_id: 'regular-calendar'
219
+ }
220
+ )
221
+ end.to_not(change { Event.count(:id) })
168
222
  end
169
223
  end
170
224
  end
@@ -174,7 +228,14 @@ module DateBook
174
228
  describe 'when not logged in' do
175
229
  before do
176
230
  # Here's where we are *not* logging in
177
- put :update, params: { id: 'science-fiction-club', event: valid_attributes, calendar_id: 'regular-calendar' }
231
+ put(
232
+ :update,
233
+ params: {
234
+ id: 'science-fiction-club',
235
+ event: valid_attributes,
236
+ calendar_id: 'regular-calendar'
237
+ }
238
+ )
178
239
  end
179
240
  it_should_behave_like 'a redirect to the home page'
180
241
  end
@@ -182,7 +243,14 @@ module DateBook
182
243
  describe 'as someone other than the owner' do
183
244
  before do
184
245
  login_user other_user
185
- put :update, params: { id: 'science-fiction-club', event: valid_attributes, calendar_id: 'regular-calendar' }
246
+ put(
247
+ :update,
248
+ params: {
249
+ id: 'science-fiction-club',
250
+ event: valid_attributes,
251
+ calendar_id: 'regular-calendar'
252
+ }
253
+ )
186
254
  end
187
255
  it_should_behave_like 'a 403 Forbidden error'
188
256
  end
@@ -190,13 +258,24 @@ module DateBook
190
258
  describe 'with valid params' do
191
259
  before do
192
260
  login_user regular_user
193
- put :update, params: { id: 'science-fiction-club', event: valid_attributes, calendar_id: 'regular-calendar' }
261
+ put(
262
+ :update,
263
+ params: {
264
+ id: 'science-fiction-club',
265
+ event: valid_attributes,
266
+ calendar_id: 'regular-calendar'
267
+ }
268
+ )
194
269
  end
195
270
  # Note that slug does not change
196
- it_should_behave_like 'a redirect to', '/date_book/calendars/regular-calendar/events/science-fiction-club'
271
+ it_should_behave_like(
272
+ 'a redirect to',
273
+ '/date_book/calendars/regular-calendar/events/'\
274
+ 'science-fiction-club'
275
+ )
197
276
 
198
277
  describe 'updates @event' do
199
- subject { science_fiction_club_event.reload }
278
+ subject { science_fiction_club.reload }
200
279
  its(:name) { should eq 'Test Event' }
201
280
  end
202
281
 
@@ -221,11 +300,11 @@ module DateBook
221
300
 
222
301
  describe 'loads the given event into @event' do
223
302
  subject { assigns(:event) }
224
- it { should eq science_fiction_club_event }
303
+ it { should eq science_fiction_club }
225
304
  end
226
305
 
227
306
  describe 'does not update @event' do
228
- subject { science_fiction_club_event.reload }
307
+ subject { science_fiction_club.reload }
229
308
  its(:name) { should eq 'Science Fiction Club' }
230
309
  end
231
310
 
@@ -242,7 +321,13 @@ module DateBook
242
321
  describe 'when not logged in' do
243
322
  before do
244
323
  # Here's where we are *not* logging in
245
- delete :destroy, params: { id: 'science-fiction-club', calendar_id: 'regular-calendar' }
324
+ delete(
325
+ :destroy,
326
+ params: {
327
+ id: 'science-fiction-club',
328
+ calendar_id: 'regular-calendar'
329
+ }
330
+ )
246
331
  end
247
332
  it_should_behave_like 'a redirect to the home page'
248
333
  end
@@ -250,17 +335,32 @@ module DateBook
250
335
  describe 'as someone other than the owner' do
251
336
  before do
252
337
  login_user other_user
253
- delete :destroy, params: { id: 'science-fiction-club', calendar_id: 'regular-calendar' }
338
+ delete(
339
+ :destroy,
340
+ params: {
341
+ id: 'science-fiction-club',
342
+ calendar_id: 'regular-calendar'
343
+ }
344
+ )
254
345
  end
255
346
  it_should_behave_like 'a 403 Forbidden error'
256
347
  end
257
348
  describe 'as the owner' do
258
349
  before do
259
350
  login_user regular_user
260
- delete :destroy, params: { id: 'science-fiction-club', calendar_id: 'regular-calendar' }
351
+ delete(
352
+ :destroy,
353
+ params: {
354
+ id: 'science-fiction-club',
355
+ calendar_id: 'regular-calendar'
356
+ }
357
+ )
261
358
  end
262
359
  # Note that slug does not change
263
- it_should_behave_like 'a redirect to', '/date_book/calendars/regular-calendar/events'
360
+ it_should_behave_like(
361
+ 'a redirect to',
362
+ '/date_book/calendars/regular-calendar/events'
363
+ )
264
364
 
265
365
  describe "sets the flash with a notice of the event's removal" do
266
366
  subject { flash[:notice] }
@@ -272,12 +372,18 @@ module DateBook
272
372
  login_user regular_user
273
373
  end
274
374
  it 'results one less event' do
275
- expect { delete(:destroy, params: { id: 'science-fiction-club', calendar_id: 'regular-calendar' }) }
276
- .to change { Event.count(:id) }.by(-1)
375
+ expect do
376
+ delete(
377
+ :destroy,
378
+ params: {
379
+ id: 'science-fiction-club',
380
+ calendar_id: 'regular-calendar'
381
+ }
382
+ )
383
+ end.to change { Event.count(:id) }.by(-1)
277
384
  end
278
385
  end
279
386
  end
280
387
  end
281
-
282
388
  end
283
389
  end