acts_as_span 0.0.5 → 0.0.6

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.
@@ -1,302 +1,304 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "a basic model using acts_as_span" do
4
- before(:all) do
5
- build_model :span_model do
6
- string :description
7
- date :start_date
8
- date :end_date
9
-
10
- acts_as_span
11
- end
12
- end
13
-
3
+ RSpec.describe "a basic model using acts_as_span" do
14
4
  context "named_scopes and current?, expired?, and future?" do
15
5
  # -2 -1 T +1 +2 C F E
16
6
  # A |---| E
17
- # B |-------| C
18
- # C |--------------| C
19
- # D | C
20
- # E |------| C
21
- # F |--| F
22
- # G |-> C
23
- # H |-> C
24
- # I |-> F
7
+ # B |-------| C
8
+ # C |--------------| C
9
+ # D | C
10
+ # E |------| C
11
+ # F |--| F
12
+ # G |-> C
13
+ # H |-> C
14
+ # I |-> F
25
15
  # J <-| E
26
- # K <-| C
27
- # L <-| C
28
- # M <-> C
16
+ # K <-| C
17
+ # L <-| C
18
+ # M <-> C
19
+ let(:span_a) {[ - 2.days, - 1.day ]}
20
+ let(:span_b) {[ - 2.days, 0.days ]}
21
+ let(:span_c) {[ - 2.days, 2.days ]}
22
+ let(:span_d) {[ 0.days, 0.days ]}
23
+ let(:span_e) {[ 0.days, 2.days ]}
24
+ let(:span_f) {[ 1.day, 2.days ]}
25
+ let(:span_g) {[ - 2.days, nil ]}
26
+ let(:span_h) {[ 0.days, nil ]}
27
+ let(:span_i) {[ 1.day, nil ]}
28
+ let(:span_j) {[ nil, - 1.day ]}
29
+ let(:span_k) {[ nil, 0.days ]}
30
+ let(:span_l) {[ nil, 2.days ]}
31
+ let(:span_m) {[ nil, nil ]}
32
+
33
+ let(:query_date) { Date.current }
34
+
35
+ let!(:span_model) do
36
+ current_start_date = start_date.nil? ? nil : query_date + start_date
37
+ current_end_date = end_date.nil? ? nil : query_date + end_date
38
+
39
+ SpanModel.create!(
40
+ start_date: current_start_date,
41
+ end_date: current_end_date)
42
+ end
43
+
29
44
  context "A) start_date < today & end_date < today" do
30
- before(:all) do
31
- @span_model = SpanModel.create!(:start_date => Date.today - 2.days, :end_date => Date.today - 1.day)
32
- end
33
-
45
+ let(:start_date) { span_a[0] }
46
+ let(:end_date) { span_a[1] }
47
+
34
48
  it "should NOT be included in #current" do
35
- SpanModel.current.should_not include(@span_model)
36
- @span_model.current?.should be_false
49
+ expect(SpanModel.current).not_to include(span_model)
50
+ expect(span_model.current?).to be_falsey
37
51
  end
38
-
52
+
39
53
  it "should NOT be included in #future" do
40
- SpanModel.future.should_not include(@span_model)
41
- @span_model.future?.should be_false
54
+ expect(SpanModel.future).not_to include(span_model)
55
+ expect(span_model.future?).to be_falsey
42
56
  end
43
-
57
+
44
58
  it "should be included in #expired" do
45
- SpanModel.expired.should include(@span_model)
46
- @span_model.expired?.should be_true
59
+ expect(SpanModel.expired).to include(span_model)
60
+ expect(span_model.expired?).to be_truthy
47
61
  end
48
62
  end
49
-
63
+
50
64
  context "B) start_date < today & end_date == today" do
51
- before(:all) do
52
- @span_model = SpanModel.create!(:start_date => Date.today - 2.day, :end_date => Date.today)
53
- end
54
-
65
+ let(:start_date) { span_b[0] }
66
+ let(:end_date) { span_b[1] }
67
+
55
68
  it "should be included in #current" do
56
- SpanModel.current.should include(@span_model)
57
- @span_model.current?.should be_true
69
+ expect(SpanModel.current).to include(span_model)
70
+ expect(span_model.current?).to be_truthy
58
71
  end
59
-
72
+
60
73
  it "should NOT be included in #future" do
61
- SpanModel.future.should_not include(@span_model)
62
- @span_model.future?.should be_false
74
+ expect(SpanModel.future).not_to include(span_model)
75
+ expect(span_model.future?).to be_falsey
63
76
  end
64
-
77
+
65
78
  it "should NOT be included in #expired" do
66
- SpanModel.expired.should_not include(@span_model)
67
- @span_model.expired?.should be_false
79
+ expect(SpanModel.expired).not_to include(span_model)
80
+ expect(span_model.expired?).to be_falsey
68
81
  end
69
82
  end
70
-
83
+
71
84
  context "C) start_date < today & end_date > today" do
72
- before(:all) do
73
- @span_model = SpanModel.create!(:start_date => Date.today - 2.day, :end_date => Date.today + 2.day)
74
- end
75
-
85
+ let(:start_date) { span_c[0] }
86
+ let(:end_date) { span_c[1] }
87
+
76
88
  it "should be included in #current" do
77
- SpanModel.current.should include(@span_model)
78
- @span_model.current?.should be_true
89
+ expect(SpanModel.current).to include(span_model)
90
+ expect(span_model.current?).to be_truthy
79
91
  end
80
-
92
+
81
93
  it "should NOT be included in #future" do
82
- SpanModel.future.should_not include(@span_model)
83
- @span_model.future?.should be_false
94
+ expect(SpanModel.future).not_to include(span_model)
95
+ expect(span_model.future?).to be_falsey
84
96
  end
85
-
97
+
86
98
  it "should NOT be included in #expired" do
87
- SpanModel.expired.should_not include(@span_model)
88
- @span_model.expired?.should be_false
99
+ expect(SpanModel.expired).not_to include(span_model)
100
+ expect(span_model.expired?).to be_falsey
89
101
  end
90
102
  end
91
-
103
+
92
104
  context "D) start_date == today & end_date == today" do
93
- before(:all) do
94
- @span_model = SpanModel.create!(:start_date => Date.today, :end_date => Date.today)
95
- end
96
-
105
+ let(:start_date) { span_d[0] }
106
+ let(:end_date) { span_d[1] }
107
+
97
108
  it "should be included in #current" do
98
- SpanModel.current.should include(@span_model)
99
- @span_model.current?.should be_true
109
+ expect(SpanModel.current).to include(span_model)
110
+ expect(span_model.current?).to be_truthy
100
111
  end
101
-
112
+
102
113
  it "should NOT be included in #future" do
103
- SpanModel.future.should_not include(@span_model)
104
- @span_model.future?.should be_false
114
+ expect(SpanModel.future).not_to include(span_model)
115
+ expect(span_model.future?).to be_falsey
105
116
  end
106
-
117
+
107
118
  it "should NOT be included in #expired" do
108
- SpanModel.expired.should_not include(@span_model)
109
- @span_model.expired?.should be_false
119
+ expect(SpanModel.expired).not_to include(span_model)
120
+ expect(span_model.expired?).to be_falsey
110
121
  end
111
122
  end
112
-
123
+
113
124
  context "E) start_date == today & end_date > today" do
114
- before(:all) do
115
- @span_model = SpanModel.create!(:start_date => Date.today, :end_date => Date.today + 2.day)
116
- end
117
-
125
+ let(:start_date) { span_e[0] }
126
+ let(:end_date) { span_e[1] }
127
+
118
128
  it "should be included in #current" do
119
- SpanModel.current.should include(@span_model)
120
- @span_model.current?.should be_true
129
+ expect(SpanModel.current).to include(span_model)
130
+ expect(span_model.current?).to be_truthy
121
131
  end
122
-
132
+
123
133
  it "should NOT be included in #future" do
124
- SpanModel.future.should_not include(@span_model)
125
- @span_model.future?.should be_false
134
+ expect(SpanModel.future).not_to include(span_model)
135
+ expect(span_model.future?).to be_falsey
126
136
  end
127
-
137
+
128
138
  it "should NOT be included in #expired" do
129
- SpanModel.expired.should_not include(@span_model)
130
- @span_model.expired?.should be_false
139
+ expect(SpanModel.expired).not_to include(span_model)
140
+ expect(span_model.expired?).to be_falsey
131
141
  end
132
142
  end
133
-
143
+
134
144
  context "F) start_date > today & end_date > today" do
135
- before(:all) do
136
- @span_model = SpanModel.create!(:start_date => Date.today + 1.day, :end_date => Date.today + 2.days)
137
- end
138
-
145
+ let(:start_date) { span_f[0] }
146
+ let(:end_date) { span_f[1] }
147
+
139
148
  it "should NOT be included in #current" do
140
- SpanModel.current.should_not include(@span_model)
141
- @span_model.current?.should be_false
149
+ expect(SpanModel.current).not_to include(span_model)
150
+ expect(span_model.current?).to be_falsey
142
151
  end
143
-
152
+
144
153
  it "should be included in #future" do
145
- SpanModel.future.should include(@span_model)
146
- @span_model.future?.should be_true
154
+ expect(SpanModel.future).to include(span_model)
155
+ expect(span_model.future?).to be_truthy
147
156
  end
148
-
157
+
149
158
  it "should NOT be included in #expired" do
150
- SpanModel.expired.should_not include(@span_model)
151
- @span_model.expired?.should be_false
159
+ expect(SpanModel.expired).not_to include(span_model)
160
+ expect(span_model.expired?).to be_falsey
152
161
  end
153
162
  end
154
-
163
+
155
164
  context "G) start_date < today & end_date == nil" do
156
- before(:all) do
157
- @span_model = SpanModel.create!(:start_date => Date.today - 2.day, :end_date => nil)
158
- end
159
-
165
+ let(:start_date) { span_g[0] }
166
+ let(:end_date) { span_g[1] }
167
+
160
168
  it "should be included in #current" do
161
- SpanModel.current.should include(@span_model)
162
- @span_model.current?.should be_true
169
+ expect(SpanModel.current).to include(span_model)
170
+ expect(span_model.current?).to be_truthy
163
171
  end
164
-
172
+
165
173
  it "should NOT be included in #future" do
166
- SpanModel.future.should_not include(@span_model)
167
- @span_model.future?.should be_false
174
+ expect(SpanModel.future).not_to include(span_model)
175
+ expect(span_model.future?).to be_falsey
168
176
  end
169
-
177
+
170
178
  it "should NOT be included in #expired" do
171
- SpanModel.expired.should_not include(@span_model)
172
- @span_model.expired?.should be_false
179
+ expect(SpanModel.expired).not_to include(span_model)
180
+ expect(span_model.expired?).to be_falsey
173
181
  end
174
182
  end
175
-
183
+
176
184
  context "H) start_date == today & end_date == nil" do
177
- before(:all) do
178
- @span_model = SpanModel.create!(:start_date => Date.today, :end_date => nil)
179
- end
180
-
185
+ let(:start_date) { span_h[0] }
186
+ let(:end_date) { span_h[1] }
187
+
181
188
  it "should be included in #current" do
182
- SpanModel.current.should include(@span_model)
183
- @span_model.current?.should be_true
189
+ expect(SpanModel.current).to include(span_model)
190
+ expect(span_model.current?).to be_truthy
184
191
  end
185
-
192
+
186
193
  it "should NOT be included in #future" do
187
- SpanModel.future.should_not include(@span_model)
188
- @span_model.future?.should be_false
194
+ expect(SpanModel.future).not_to include(span_model)
195
+ expect(span_model.future?).to be_falsey
189
196
  end
190
-
197
+
191
198
  it "should NOT be included in #expired" do
192
- SpanModel.expired.should_not include(@span_model)
193
- @span_model.expired?.should be_false
199
+ expect(SpanModel.expired).not_to include(span_model)
200
+ expect(span_model.expired?).to be_falsey
194
201
  end
195
202
  end
196
-
203
+
197
204
  context "I) start_date > today & end_date == nil" do
198
- before(:all) do
199
- @span_model = SpanModel.create!(:start_date => Date.today + 1.day, :end_date => nil)
200
- end
201
-
205
+ let(:start_date) { span_i[0] }
206
+ let(:end_date) { span_i[1] }
207
+
202
208
  it "should NOT be included in #current" do
203
- SpanModel.current.should_not include(@span_model)
204
- @span_model.current?.should be_false
209
+ expect(SpanModel.current).not_to include(span_model)
210
+ expect(span_model.current?).to be_falsey
205
211
  end
206
-
212
+
207
213
  it "should be included in #future" do
208
- SpanModel.future.should include(@span_model)
209
- @span_model.future?.should be_true
214
+ expect(SpanModel.future).to include(span_model)
215
+ expect(span_model.future?).to be_truthy
210
216
  end
211
-
217
+
212
218
  it "should NOT be included in #expired" do
213
- SpanModel.expired.should_not include(@span_model)
214
- @span_model.expired?.should be_false
219
+ expect(SpanModel.expired).not_to include(span_model)
220
+ expect(span_model.expired?).to be_falsey
215
221
  end
216
222
  end
217
-
223
+
218
224
  context "J) start_date == nil & end_date < today" do
219
- before(:all) do
220
- @span_model = SpanModel.create!(:start_date => nil, :end_date => Date.today - 1.day)
221
- end
222
-
225
+ let(:start_date) { span_j[0] }
226
+ let(:end_date) { span_j[1] }
227
+
223
228
  it "should NOT be included in #current" do
224
- SpanModel.current.should_not include(@span_model)
225
- @span_model.current?.should be_false
229
+ expect(SpanModel.current).not_to include(span_model)
230
+ expect(span_model.current?).to be_falsey
226
231
  end
227
-
232
+
228
233
  it "should NOT be included in #future" do
229
- SpanModel.future.should_not include(@span_model)
230
- @span_model.future?.should be_false
234
+ expect(SpanModel.future).not_to include(span_model)
235
+ expect(span_model.future?).to be_falsey
231
236
  end
232
-
237
+
233
238
  it "should be included in #expired" do
234
- SpanModel.expired.should include(@span_model)
235
- @span_model.expired?.should be_true
239
+ expect(SpanModel.expired).to include(span_model)
240
+ expect(span_model.expired?).to be_truthy
236
241
  end
237
242
  end
238
-
243
+
239
244
  context "K) start_date == nil & end_date == today" do
240
- before(:all) do
241
- @span_model = SpanModel.create!(:start_date => nil, :end_date => Date.today)
242
- end
243
-
245
+ let(:start_date) { span_k[0] }
246
+ let(:end_date) { span_k[1] }
247
+
244
248
  it "should be included in #current" do
245
- SpanModel.current.should include(@span_model)
246
- @span_model.current?.should be_true
249
+ expect(SpanModel.current).to include(span_model)
250
+ expect(span_model.current?).to be_truthy
247
251
  end
248
-
252
+
249
253
  it "should NOT be included in #future" do
250
- SpanModel.future.should_not include(@span_model)
251
- @span_model.future?.should be_false
254
+ expect(SpanModel.future).not_to include(span_model)
255
+ expect(span_model.future?).to be_falsey
252
256
  end
253
-
257
+
254
258
  it "should NOT be included in #expired" do
255
- SpanModel.expired.should_not include(@span_model)
256
- @span_model.expired?.should be_false
259
+ expect(SpanModel.expired).not_to include(span_model)
260
+ expect(span_model.expired?).to be_falsey
257
261
  end
258
262
  end
259
-
263
+
260
264
  context "L) start_date == nil & end_date > today" do
261
- before(:all) do
262
- @span_model = SpanModel.create!(:start_date => nil, :end_date => Date.today + 2.day)
263
- end
264
-
265
+ let(:start_date) { span_l[0] }
266
+ let(:end_date) { span_l[1] }
267
+
265
268
  it "should be included in #current" do
266
- SpanModel.current.should include(@span_model)
267
- @span_model.current?.should be_true
269
+ expect(SpanModel.current).to include(span_model)
270
+ expect(span_model.current?).to be_truthy
268
271
  end
269
-
272
+
270
273
  it "should NOT be included in #future" do
271
- SpanModel.future.should_not include(@span_model)
272
- @span_model.future?.should be_false
274
+ expect(SpanModel.future).not_to include(span_model)
275
+ expect(span_model.future?).to be_falsey
273
276
  end
274
-
277
+
275
278
  it "should NOT be included in #expired" do
276
- SpanModel.expired.should_not include(@span_model)
277
- @span_model.expired?.should be_false
279
+ expect(SpanModel.expired).not_to include(span_model)
280
+ expect(span_model.expired?).to be_falsey
278
281
  end
279
282
  end
280
-
283
+
281
284
  context "M) start_date == nil & end_date == nil" do
282
- before(:all) do
283
- @span_model = SpanModel.create!(:start_date => nil, :end_date => nil)
284
- end
285
-
285
+ let(:start_date) { span_m[0] }
286
+ let(:end_date) { span_m[1] }
287
+
286
288
  it "should be included in #current" do
287
- SpanModel.current.should include(@span_model)
288
- @span_model.current?.should be_true
289
+ expect(SpanModel.current).to include(span_model)
290
+ expect(span_model.current?).to be_truthy
289
291
  end
290
-
292
+
291
293
  it "should NOT be included in #future" do
292
- SpanModel.future.should_not include(@span_model)
293
- @span_model.future?.should be_false
294
+ expect(SpanModel.future).not_to include(span_model)
295
+ expect(span_model.future?).to be_falsey
294
296
  end
295
-
297
+
296
298
  it "should NOT be included in #expired" do
297
- SpanModel.expired.should_not include(@span_model)
298
- @span_model.expired?.should be_false
299
+ expect(SpanModel.expired).not_to include(span_model)
300
+ expect(span_model.expired?).to be_falsey
299
301
  end
300
302
  end
301
303
  end
302
- end
304
+ end