compo 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,6 +2,6 @@ require 'spec_helper'
2
2
  require 'compo'
3
3
  require 'array_composite_shared_examples'
4
4
 
5
- describe Compo::Composites::Array do
5
+ RSpec.describe Compo::Composites::Array do
6
6
  it_behaves_like 'an array composite'
7
7
  end
@@ -2,7 +2,7 @@ require 'url_finder_shared_examples'
2
2
  require 'url_referenceable_shared_examples'
3
3
  require 'movable_shared_examples'
4
4
 
5
- shared_examples 'a branch' do
5
+ RSpec.shared_examples 'a branch' do
6
6
  it_behaves_like 'a URL referenceable object'
7
7
  it_behaves_like 'a movable object'
8
8
 
@@ -16,6 +16,11 @@ shared_examples 'a branch' do
16
16
  end
17
17
  end
18
18
 
19
+ shared_context 'the branch has a parent' do
20
+ let(:parent) { Compo::Branches::Hash.new }
21
+ before(:each) { subject.move_to(parent, :id) }
22
+ end
23
+
19
24
  describe '#url' do
20
25
  context 'when the Branch has no parent' do
21
26
  it 'returns the empty string' do
@@ -23,8 +28,7 @@ shared_examples 'a branch' do
23
28
  end
24
29
  end
25
30
  context 'when the Branch is the child of a root' do
26
- let(:parent) { Compo::Branches::Hash.new }
27
- before(:each) { subject.move_to(parent, :id) }
31
+ include_context 'the branch has a parent'
28
32
 
29
33
  it 'returns /ID, where ID is the ID of the Branch' do
30
34
  expect(subject.url).to eq('/id')
@@ -35,8 +39,7 @@ shared_examples 'a branch' do
35
39
  describe '#move_to' do
36
40
  context 'when the Branch has a parent' do
37
41
  context 'when the new parent is nil' do
38
- let(:parent) { Compo::Branches::Hash.new }
39
- before(:each) { subject.move_to(parent, :id) }
42
+ include_context 'the branch has a parent'
40
43
 
41
44
  it 'loses its previous parent' do
42
45
  expect(subject.move_to(nil, :id).parent).to be_a(
@@ -53,7 +56,7 @@ shared_examples 'a branch' do
53
56
  end
54
57
  end
55
58
 
56
- shared_examples 'a branch with children' do
59
+ RSpec.shared_examples 'a branch with children' do
57
60
  it_behaves_like 'a branch'
58
61
 
59
62
  describe '#find_url' do
data/spec/branch_spec.rb CHANGED
@@ -7,6 +7,6 @@ class MockBranch
7
7
  include Compo::Branches::Branch
8
8
  end
9
9
 
10
- describe MockBranch do
10
+ RSpec.describe MockBranch do
11
11
  it_behaves_like 'a branch'
12
12
  end
@@ -1,6 +1,6 @@
1
1
  require 'compo'
2
2
 
3
- shared_examples 'a removal of a child from its parent' do
3
+ RSpec.shared_examples 'a removal of a child from its parent' do
4
4
  it 'calls #update_parent on the child with a Parentless' do
5
5
  expect(child).to receive(:update_parent).once do |parent, _|
6
6
  expect(parent).to be_a(Compo::Composites::Parentless)
@@ -16,7 +16,7 @@ shared_examples 'a removal of a child from its parent' do
16
16
  end
17
17
  end
18
18
 
19
- shared_examples 'a composite' do
19
+ RSpec.shared_examples 'a composite' do
20
20
  let(:id) { double(:id) }
21
21
  let(:child) { double(:child) }
22
22
 
@@ -32,7 +32,19 @@ shared_examples 'a composite' do
32
32
  end
33
33
  end
34
34
 
35
+ describe '#on_node' do
36
+ it 'calls the block given with the subject' do
37
+ expect { |block| subject.on_node(&block) }.to yield_with_args(subject)
38
+ end
39
+
40
+ it 'returns the result of the block' do
41
+ expect(subject.on_node { |subject| subject }).to eq(subject)
42
+ expect(subject.on_node { 3 }).to eq(3)
43
+ end
44
+ end
45
+
35
46
  describe '#add' do
47
+ let(:idf) { double(:id_function) }
36
48
  before(:each) { allow(subject).to receive(:add!) }
37
49
 
38
50
  context 'when #add! returns nil' do
@@ -48,26 +60,24 @@ shared_examples 'a composite' do
48
60
 
49
61
  context 'when #add! returns the child' do
50
62
  before(:each) do
51
- allow(subject).to receive(:add!).and_return(child)
52
- allow(subject).to receive(:id_function)
63
+ allow(subject).to receive_messages(add!: child, id_function: nil)
53
64
  allow(child).to receive(:update_parent)
54
65
  end
55
66
 
56
67
  it 'calls #add! with the ID and child given' do
57
- expect(subject).to receive(:add!).once.with(id, child)
58
68
  subject.add(id, child)
69
+ expect(subject).to have_received(:add!).once.with(id, child)
59
70
  end
60
71
 
61
72
  it 'calls #id_function with the child given' do
62
- expect(subject).to receive(:id_function).once.with(child)
63
73
  subject.add(id, child)
74
+ expect(subject).to have_received(:id_function).once.with(child)
64
75
  end
65
76
 
66
77
  it 'calls #update_parent on the child with the parent and ID function' do
67
- idf = double(:id_function)
68
78
  allow(subject).to receive(:id_function).and_return(idf)
69
- expect(child).to receive(:update_parent).once.with(subject, idf)
70
79
  subject.add(id, child)
80
+ expect(child).to have_received(:update_parent).once.with(subject, idf)
71
81
  end
72
82
 
73
83
  it 'returns the given child' do
@@ -95,16 +105,18 @@ shared_examples 'a composite' do
95
105
  end
96
106
  end
97
107
 
98
- shared_examples 'a composite with default #remove!' do
108
+ RSpec.shared_examples 'a composite with default #remove!' do
99
109
  let(:child) { double(:child) }
100
110
  let(:id) { double(:id) }
101
111
 
102
112
  describe '#remove' do
103
113
  context 'when #remove! is defined' do
104
- before(:each) { allow(subject).to receive(:remove!) }
114
+ before(:each) do
115
+ allow(subject).to receive(:remove!).and_return(remove_result)
116
+ end
105
117
 
106
118
  context 'when #remove! returns nil' do
107
- before(:each) { allow(subject).to receive(:remove!).and_return(nil) }
119
+ let(:remove_result) { nil }
108
120
 
109
121
  specify { expect(subject.remove(child)).to be_nil }
110
122
 
@@ -115,10 +127,8 @@ shared_examples 'a composite with default #remove!' do
115
127
  end
116
128
 
117
129
  context 'when #remove! returns the child' do
118
- before(:each) do
119
- allow(subject).to receive(:remove!).and_return(child)
120
- allow(child).to receive(:update_parent)
121
- end
130
+ let(:remove_result) { child }
131
+ before(:each) { allow(child).to receive(:update_parent) }
122
132
 
123
133
  it 'calls #remove! with the child given' do
124
134
  expect(subject).to receive(:remove!).once.with(child)
@@ -137,40 +147,40 @@ shared_examples 'a composite with default #remove!' do
137
147
 
138
148
  context 'when #remove_id! is defined but #remove! is not' do
139
149
  before(:each) do
140
- allow(subject).to receive(:remove_id!)
141
- allow(subject).to receive(:children).and_return(id => child)
150
+ allow(subject).to receive_messages(remove_id!: remove_id_result,
151
+ children: { id => child })
142
152
  end
143
153
 
144
154
  context 'when #remove_id! returns nil' do
145
- before(:each) do
146
- allow(subject).to receive(:remove_id!).and_return(nil)
147
- end
155
+ let(:remove_id_result) { nil }
148
156
 
149
157
  specify { expect(subject.remove(child)).to be_nil }
150
158
 
151
159
  it 'calls #remove! with the child given' do
160
+ # Note: #remove! is not a stub, so we must use this form of
161
+ # expectation.
152
162
  expect(subject).to receive(:remove!).once.with(child)
153
163
  subject.remove(child)
154
164
  end
155
165
 
156
166
  it 'calls #remove_id! with the ID of the child' do
157
- expect(subject).to receive(:remove_id!).once.with(id)
158
167
  subject.remove(child)
168
+ expect(subject).to have_received(:remove_id!).once.with(id)
159
169
  end
160
170
 
161
171
  it 'calls #children' do
162
- expect(subject).to receive(:children).once
163
172
  subject.remove(child)
173
+ expect(subject).to have_received(:children).once
164
174
  end
165
175
  end
166
176
 
167
177
  context 'when #remove_id! returns the child' do
168
- before(:each) do
169
- allow(subject).to receive(:remove_id!).and_return(child)
170
- allow(child).to receive(:update_parent)
171
- end
178
+ let(:remove_id_result) { child }
179
+ before(:each) { allow(child).to receive(:update_parent) }
172
180
 
173
- it 'calls #remove_id! with the child given' do
181
+ it 'calls #remove! with the child given' do
182
+ # Note: #remove! is not a stub, so we must use this form of
183
+ # expectation.
174
184
  expect(subject).to receive(:remove!).once.with(child)
175
185
  subject.remove(child)
176
186
  end
@@ -187,38 +197,34 @@ shared_examples 'a composite with default #remove!' do
187
197
  end
188
198
  end
189
199
 
190
- shared_examples 'a composite with default #remove_id!' do
200
+ RSpec.shared_examples 'a composite with default #remove_id!' do
191
201
  let(:child) { double(:child) }
192
- let(:id) { double(:id) }
202
+ let(:id) { double(:id) }
193
203
 
194
204
  describe '#remove_id' do
195
- let(:id) { double(:id) }
196
-
197
205
  context 'when #remove_id! is defined' do
198
- before(:each) { allow(subject).to receive(:remove_id!) }
206
+ before(:each) do
207
+ allow(subject).to receive(:remove_id!).and_return(remove_id_result)
208
+ end
199
209
 
200
210
  context 'and #remove_id! returns nil' do
201
- before(:each) do
202
- allow(subject).to receive(:remove_id!).and_return(nil)
203
- end
211
+ let(:remove_id_result) { nil }
204
212
 
205
213
  specify { expect(subject.remove_id(id)).to be_nil }
206
214
 
207
215
  it 'calls #remove_id! with the ID given' do
208
- expect(subject).to receive(:remove_id!).once.with(id)
209
216
  subject.remove_id(id)
217
+ expect(subject).to have_received(:remove_id!).once.with(id)
210
218
  end
211
219
  end
212
220
 
213
221
  context 'and #remove_id! returns the child' do
214
- before(:each) do
215
- allow(subject).to receive(:remove_id!).and_return(child)
216
- allow(child).to receive(:update_parent)
217
- end
222
+ let(:remove_id_result) { child }
223
+ before(:each) { allow(child).to receive(:update_parent) }
218
224
 
219
225
  it 'calls #remove_id! with the ID given' do
220
- expect(subject).to receive(:remove_id!).once.with(id)
221
226
  subject.remove_id(id)
227
+ expect(subject).to have_received(:remove_id!).once.with(id)
222
228
  end
223
229
 
224
230
  it_behaves_like 'a removal of a child from its parent' do
@@ -232,42 +238,53 @@ shared_examples 'a composite with default #remove_id!' do
232
238
  end
233
239
 
234
240
  context 'when #remove! is defined but #remove_id! is not' do
235
- before(:each) { allow(subject).to receive(:remove!) }
241
+ before(:each) do
242
+ allow(subject).to receive(:remove!).and_return(remove_result)
243
+ end
236
244
 
237
245
  context 'and #remove! returns nil' do
246
+ let(:remove_result) { nil }
238
247
  before(:each) do
239
- allow(subject).to receive(:remove!).and_return(nil)
240
248
  allow(subject).to receive(:get_child).and_return(child)
241
249
  end
242
250
 
243
251
  specify { expect(subject.remove_id(id)).to be_nil }
244
252
 
245
253
  it 'calls #remove_id! with the ID given' do
254
+ # Note: #remove_id! is not a stub, so we must use this form of
255
+ # expectation.
246
256
  expect(subject).to receive(:remove_id!).once.with(id)
247
257
  subject.remove_id(id)
248
258
  end
249
259
 
250
260
  it 'calls #get_child with the ID given' do
251
- expect(subject).to receive(:get_child).once.with(id)
252
261
  subject.remove_id(id)
262
+ expect(subject).to have_received(:get_child).once.with(id)
253
263
  end
254
264
 
255
265
  it 'calls #remove! with the child given' do
256
- expect(subject).to receive(:remove!).once.with(child)
257
266
  subject.remove_id(id)
267
+ expect(subject).to have_received(:remove!).once.with(child)
258
268
  end
259
269
  end
260
270
 
261
271
  context 'and #remove! returns the child' do
272
+ let(:remove_result) { child }
262
273
  before(:each) do
263
- allow(subject).to receive(:remove!).and_return(child)
264
274
  allow(subject).to receive(:get_child).and_return(child)
265
275
  allow(child).to receive(:update_parent)
266
276
  end
267
277
 
278
+ it 'calls #remove_id! with the ID given' do
279
+ # Note: #remove_id! is not a stub, so we must use this form of
280
+ # expectation.
281
+ expect(subject).to receive(:remove_id!).once.with(id)
282
+ subject.remove_id(id)
283
+ end
284
+
268
285
  it 'calls #remove! with the child given' do
269
- expect(subject).to receive(:remove!).once.with(child)
270
286
  subject.remove_id(id)
287
+ expect(subject).to have_received(:remove!).once.with(child)
271
288
  end
272
289
 
273
290
  it_behaves_like 'a removal of a child from its parent' do
@@ -7,7 +7,7 @@ class MockComposite
7
7
  include Compo::Composites::Composite
8
8
  end
9
9
 
10
- describe MockComposite do
10
+ RSpec.describe MockComposite do
11
11
  before(:each) { allow(subject).to receive(:children).and_return(children) }
12
12
  let(:children) { { in_children: child } }
13
13
  let(:child) { double(:child) }
@@ -3,7 +3,7 @@ require 'compo'
3
3
  require 'branch_shared_examples'
4
4
  require 'leaf_composite_shared_examples'
5
5
 
6
- describe Compo::Branches::Constant do
6
+ RSpec.describe Compo::Branches::Constant do
7
7
  let(:value) { 3.141592653 }
8
8
  subject { Compo::Branches::Constant.new(value) }
9
9
 
@@ -3,7 +3,7 @@ require 'compo'
3
3
  require 'branch_shared_examples'
4
4
  require 'hash_composite_shared_examples'
5
5
 
6
- describe Compo::Branches::Hash do
6
+ RSpec.describe Compo::Branches::Hash do
7
7
  it_behaves_like 'a branch with children' do
8
8
  let(:initial_ids) { %w(a b) }
9
9
  end
@@ -1,7 +1,7 @@
1
1
  require 'compo'
2
2
  require 'composite_shared_examples'
3
3
 
4
- shared_examples 'a hash composite' do
4
+ RSpec.shared_examples 'a hash composite' do
5
5
  it_behaves_like 'a composite'
6
6
 
7
7
  let(:child1) { double(:child1) }
@@ -22,10 +22,9 @@ shared_examples 'a hash composite' do
22
22
  end
23
23
 
24
24
  it 'replaces the old child in the child hash' do
25
- expect(subject.children).to eq(a: child1)
26
-
27
- subject.add(:a, child2)
28
- expect(subject.children).to eq(a: child2)
25
+ expect { subject.add(:a, child2) }.to change { subject.children }
26
+ .from(a: child1)
27
+ .to(a: child2)
29
28
  end
30
29
 
31
30
  it 'calls #update_parent on the new child with itself and an ID proc' do
@@ -61,14 +60,15 @@ shared_examples 'a hash composite' do
61
60
  it 'adds to the child hash' do
62
61
  expect(subject.children).to eq({})
63
62
 
64
- subject.add(:a, child1)
65
- expect(subject.children).to eq(a: child1)
66
-
67
- subject.add(:b, child2)
68
- expect(subject.children).to eq(a: child1, b: child2)
69
-
70
- subject.add(:c, child3)
71
- expect(subject.children).to eq(a: child1, b: child2, c: child3)
63
+ expect { subject.add(:a, child1) }.to change { subject.children }
64
+ .from({})
65
+ .to(a: child1)
66
+ expect { subject.add(:b, child2) }.to change { subject.children }
67
+ .from(a: child1)
68
+ .to(a: child1, b: child2)
69
+ expect { subject.add(:c, child3) }.to change { subject.children }
70
+ .from(a: child1, b: child2)
71
+ .to(a: child1, b: child2, c: child3)
72
72
  end
73
73
 
74
74
  it 'calls #update_parent on the child with itself and an ID proc' do
@@ -106,9 +106,10 @@ shared_examples 'a hash composite' do
106
106
  it 'removes the child, and only the child, from the children hash' do
107
107
  subject.add(:b, child2)
108
108
  subject.add(:c, child3)
109
- expect(subject.children).to eq(a: child1, b: child2, c: child3)
110
- subject.remove(child2)
111
- expect(subject.children).to eq(a: child1, c: child3)
109
+
110
+ expect { subject.remove(child2) }.to change { subject.children }
111
+ .from(a: child1, b: child2, c: child3)
112
+ .to(a: child1, c: child3)
112
113
  end
113
114
  end
114
115
 
@@ -116,15 +117,13 @@ shared_examples 'a hash composite' do
116
117
  specify { expect(subject.remove(child1)).to be_nil }
117
118
 
118
119
  it 'does not change the children' do
119
- expect(subject.children).to eq({})
120
- subject.remove(child1)
121
- expect(subject.children).to eq({})
120
+ expect { subject.remove(child1) }.to_not change { subject.children }
121
+ .from({})
122
122
 
123
123
  subject.add(:a, child1)
124
124
  subject.add(:b, child2)
125
- expect(subject.children).to eq(a: child1, b: child2)
126
- subject.remove(child3)
127
- expect(subject.children).to eq(a: child1, b: child2)
125
+ expect { subject.remove(child3) }.to_not change { subject.children }
126
+ .from(a: child1, b: child2)
128
127
  end
129
128
  end
130
129
  end
@@ -154,9 +153,9 @@ shared_examples 'a hash composite' do
154
153
  it 'does not change the IDs of other children' do
155
154
  subject.add(:b, child2)
156
155
  subject.add(:c, child3)
157
- expect(subject.children).to eq(a: child1, b: child2, c: child3)
158
- subject.remove_id(:b)
159
- expect(subject.children).to eq(a: child1, c: child3)
156
+ expect { subject.remove_id(:b) }.to change { subject.children }
157
+ .from(a: child1, b: child2, c: child3)
158
+ .to(a: child1, c: child3)
160
159
  end
161
160
  end
162
161
 
@@ -164,15 +163,13 @@ shared_examples 'a hash composite' do
164
163
  specify { expect(subject.remove_id(:a)).to be_nil }
165
164
 
166
165
  it 'does not change the children' do
167
- expect(subject.children).to eq({})
168
- subject.remove_id(:a)
169
- expect(subject.children).to eq({})
166
+ expect { subject.remove_id(:a) }.to_not change { subject.children }
167
+ .from({})
170
168
 
171
169
  subject.add(:a, child1)
172
170
  subject.add(:b, child2)
173
- expect(subject.children).to eq(a: child1, b: child2)
174
- subject.remove_id(:c)
175
- expect(subject.children).to eq(a: child1, b: child2)
171
+ expect { subject.remove_id(:c) }.to_not change { subject.children }
172
+ .from(a: child1, b: child2)
176
173
  end
177
174
  end
178
175
  end
@@ -2,6 +2,6 @@ require 'spec_helper'
2
2
  require 'compo'
3
3
  require 'hash_composite_shared_examples'
4
4
 
5
- describe Compo::Composites::Hash do
5
+ RSpec.describe Compo::Composites::Hash do
6
6
  it_behaves_like 'a hash composite'
7
7
  end
@@ -3,7 +3,7 @@ require 'compo'
3
3
  require 'branch_shared_examples'
4
4
  require 'leaf_composite_shared_examples'
5
5
 
6
- describe Compo::Branches::Leaf do
6
+ RSpec.describe Compo::Branches::Leaf do
7
7
  it_behaves_like 'a branch'
8
8
  it_behaves_like 'a leaf composite'
9
9
  end
@@ -1,47 +1,33 @@
1
1
  require 'composite_shared_examples'
2
2
 
3
- shared_examples 'a leaf composite' do
3
+ RSpec.shared_examples 'a leaf composite' do
4
4
  it_behaves_like 'a composite'
5
5
 
6
- let(:child1) { double(:child1) }
7
- let(:child2) { double(:child2) }
8
- let(:child3) { double(:child3) }
6
+ let(:c1) { double(:child1) }
7
+ let(:c2) { double(:child2) }
8
+ let(:c3) { double(:child3) }
9
9
 
10
10
  describe '#add' do
11
11
  it 'always returns nil' do
12
- expect(subject.add(1, child1)).to be_nil
13
- expect(subject.add(:a, child2)).to be_nil
14
- expect(subject.add(nil, child3)).to be_nil
12
+ expect(subject.add(1, c1)).to be_nil
13
+ expect(subject.add(:a, c2)).to be_nil
14
+ expect(subject.add(nil, c3)).to be_nil
15
15
  end
16
16
 
17
17
  it 'does not change the result of #children' do
18
- expect(subject.children).to eq({})
19
-
20
- subject.add(1, child1)
21
- expect(subject.children).to eq({})
22
-
23
- subject.add(:a, child2)
24
- expect(subject.children).to eq({})
25
-
26
- subject.add(:a, child3)
27
- expect(subject.children).to eq({})
18
+ expect { subject.add(1, c1) }.to_not change { subject.children }.from({})
19
+ expect { subject.add(:a, c2) }.to_not change { subject.children }.from({})
20
+ expect { subject.add(:a, c3) }.to_not change { subject.children }.from({})
28
21
  end
29
22
  end
30
23
 
31
24
  describe '#remove' do
32
- specify { expect(subject.remove(child1)).to eq(nil) }
25
+ specify { expect(subject.remove(c1)).to eq(nil) }
33
26
 
34
27
  it 'does not change the result of #children' do
35
- expect(subject.children).to eq({})
36
-
37
- subject.remove(child1)
38
- expect(subject.children).to eq({})
39
-
40
- subject.remove(child2)
41
- expect(subject.children).to eq({})
42
-
43
- subject.remove(child3)
44
- expect(subject.children).to eq({})
28
+ expect { subject.remove(c1) }.to_not change { subject.children }.from({})
29
+ expect { subject.remove(c2) }.to_not change { subject.children }.from({})
30
+ expect { subject.remove(c3) }.to_not change { subject.children }.from({})
45
31
  end
46
32
  end
47
33
 
@@ -2,6 +2,6 @@ require 'spec_helper'
2
2
  require 'compo'
3
3
  require 'leaf_composite_shared_examples'
4
4
 
5
- describe Compo::Composites::Leaf do
5
+ RSpec.describe Compo::Composites::Leaf do
6
6
  it_behaves_like 'a leaf composite'
7
7
  end
@@ -1,6 +1,6 @@
1
1
  require 'compo'
2
2
 
3
- shared_examples 'a normal call to #move_to' do
3
+ RSpec.shared_examples 'a normal call to #move_to' do
4
4
  it 'returns itself' do
5
5
  expect(subject.move_to(to, :test)).to eq(subject)
6
6
  end
@@ -11,14 +11,14 @@ shared_examples 'a normal call to #move_to' do
11
11
  end
12
12
  end
13
13
 
14
- shared_examples 'a removal from the old parent' do
14
+ RSpec.shared_examples 'a removal from the old parent' do
15
15
  it 'calls #remove on the old parent with the Movable' do
16
16
  expect(from).to receive(:remove).once.with(subject)
17
17
  subject.move_to(to, :test)
18
18
  end
19
19
  end
20
20
 
21
- shared_examples 'an addition to the new parent' do
21
+ RSpec.shared_examples 'an addition to the new parent' do
22
22
  it 'calls #add on the new parent with the ID and Movable' do
23
23
  expect(to).to_not be_nil
24
24
  expect(to).to receive(:add).once.with(:test, subject)
@@ -26,7 +26,7 @@ shared_examples 'an addition to the new parent' do
26
26
  end
27
27
  end
28
28
 
29
- shared_examples 'a movable object' do
29
+ RSpec.shared_examples 'a movable object' do
30
30
  let(:old_parent) { double(:old_parent) }
31
31
  let(:new_parent) { double(:new_parent) }
32
32
  let(:remove_result) { subject }
data/spec/movable_spec.rb CHANGED
@@ -7,6 +7,6 @@ class MockMovable
7
7
  include Compo::Mixins::Movable
8
8
  end
9
9
 
10
- describe MockMovable do
10
+ RSpec.describe MockMovable do
11
11
  it_behaves_like 'a movable object'
12
12
  end
@@ -13,7 +13,7 @@ class MockParentTracker
13
13
  end
14
14
  end
15
15
 
16
- describe MockParentTracker do
16
+ RSpec.describe MockParentTracker do
17
17
  subject { MockParentTracker.new(parent, id_function) }
18
18
  let(:parent) { double(:parent) }
19
19
  let(:id_function) { double(:id_function) }