warp 1.3.3 → 1.4.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +7 -10
- data/Appraisals +2 -3
- data/CHANGELOG.md +6 -0
- data/Gemfile +3 -5
- data/README.md +2 -3
- data/gemfiles/rails_3.2_rspec_3.0.gemfile +2 -6
- data/gemfiles/rails_3.2_rspec_3.1.gemfile +2 -6
- data/gemfiles/rails_3.2_rspec_3.2.gemfile +2 -6
- data/gemfiles/{rails_3.2_rspec_2.99.gemfile → rails_3.2_rspec_3.3.gemfile} +3 -7
- data/gemfiles/rails_4.0_rspec_3.0.gemfile +2 -6
- data/gemfiles/rails_4.0_rspec_3.1.gemfile +2 -6
- data/gemfiles/rails_4.0_rspec_3.2.gemfile +2 -6
- data/gemfiles/{rails_4.0_rspec_2.99.gemfile → rails_4.0_rspec_3.3.gemfile} +3 -7
- data/gemfiles/rails_4.1_rspec_3.0.gemfile +2 -6
- data/gemfiles/rails_4.1_rspec_3.1.gemfile +2 -6
- data/gemfiles/rails_4.1_rspec_3.2.gemfile +2 -6
- data/gemfiles/{rails_4.1_rspec_2.99.gemfile → rails_4.1_rspec_3.3.gemfile} +3 -7
- data/gemfiles/rails_4.2_rspec_3.0.gemfile +2 -6
- data/gemfiles/rails_4.2_rspec_3.1.gemfile +2 -6
- data/gemfiles/rails_4.2_rspec_3.2.gemfile +2 -6
- data/gemfiles/{rails_4.2_rspec_2.99.gemfile → rails_4.2_rspec_3.3.gemfile} +3 -7
- data/lib/warp/action_matchers/create_matcher.rb +6 -14
- data/lib/warp/action_matchers/destroy_matcher.rb +6 -14
- data/lib/warp/action_matchers/matcher.rb +7 -1
- data/lib/warp/action_matchers/update_matcher.rb +6 -14
- data/lib/warp/controller_matchers/assign_matcher.rb +127 -48
- data/lib/warp/instrument.rb +8 -26
- data/lib/warp/matcher.rb +2 -27
- data/lib/warp/version.rb +2 -2
- data/spec/spec_helper.rb +0 -11
- data/spec/warp/action_matchers/create_matcher_spec.rb +1 -1
- data/spec/warp/action_matchers/destroy_matcher_spec.rb +1 -1
- data/spec/warp/action_matchers/update_matcher_spec.rb +1 -1
- data/spec/warp/controller_matchers/assign_matcher_spec.rb +132 -88
- metadata +7 -7
@@ -4,12 +4,12 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
4
4
|
with_contexts do
|
5
5
|
context "with implicit controller" do
|
6
6
|
build_controller(:controller)
|
7
|
-
|
7
|
+
|
8
8
|
let(:_controller) { controller }
|
9
9
|
|
10
10
|
subject { matcher.tap {|m| m.matches?(Object.new) } }
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
context "with explicit controller" do
|
14
14
|
build_controller(:other_controller)
|
15
15
|
let(:controller) { double("fake controller") }
|
@@ -18,7 +18,7 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
18
18
|
|
19
19
|
subject { matcher.tap {|m| m.matches?(other_controller) } }
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
behaviour do
|
23
23
|
let(:matcher) { assign(:assign) }
|
24
24
|
|
@@ -34,7 +34,7 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
specify { expect(subject).to match(_controller) }
|
37
|
-
|
37
|
+
|
38
38
|
describe_failure_message_when_negated do
|
39
39
|
specify { expect(subject).to eq "expected @assign to not be assigned" }
|
40
40
|
end
|
@@ -46,18 +46,13 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
specify { expect(subject).to_not match(_controller) }
|
49
|
-
|
49
|
+
|
50
50
|
describe_failure_message do
|
51
51
|
specify { expect(subject).to eq "expected @assign to be assigned" }
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
55
|
describe "#with" do
|
56
|
-
controller_action do
|
57
|
-
@assign = spec.actual_assign_value
|
58
|
-
end
|
59
|
-
|
60
|
-
let(:actual_assign_value) { "foobar" }
|
61
56
|
let(:expected_assign_value) { "foobar" }
|
62
57
|
|
63
58
|
let(:matcher) { super().with(expected_assign_value) }
|
@@ -68,32 +63,47 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
68
63
|
specify { expect(subject).to eq "assign @assign with #{expected_assign_value.inspect}" }
|
69
64
|
end
|
70
65
|
|
71
|
-
context "
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
66
|
+
context "when assigned" do
|
67
|
+
controller_action do
|
68
|
+
@assign = spec.actual_assign_value
|
69
|
+
end
|
70
|
+
|
71
|
+
context "with the right value" do
|
72
|
+
let(:actual_assign_value) { expected_assign_value }
|
73
|
+
|
74
|
+
specify { expect(subject).to match(_controller) }
|
75
|
+
|
76
|
+
describe_failure_message_when_negated do
|
77
|
+
specify { expect(subject).to eq "expected @assign to not be assigned with #{expected_assign_value.inspect}" }
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "with the wrong value" do
|
82
|
+
let(:actual_assign_value) { "foobaz" }
|
83
|
+
|
84
|
+
specify { expect(subject).to_not match(_controller) }
|
85
|
+
|
86
|
+
describe_failure_message do
|
87
|
+
specify { expect(subject).to eq "expected @assign to be assigned with #{expected_assign_value.inspect} but was assigned with #{actual_assign_value.inspect}" }
|
88
|
+
end
|
76
89
|
end
|
77
90
|
end
|
78
91
|
|
79
|
-
context "
|
80
|
-
|
92
|
+
context "when not assigned" do
|
93
|
+
controller_action do
|
94
|
+
# no assign
|
95
|
+
end
|
81
96
|
|
82
97
|
specify { expect(subject).to_not match(_controller) }
|
83
|
-
|
98
|
+
|
84
99
|
describe_failure_message do
|
85
|
-
specify { expect(subject).to eq "expected @assign to be assigned with #{expected_assign_value.inspect} but was assigned
|
100
|
+
specify { expect(subject).to eq "expected @assign to be assigned with #{expected_assign_value.inspect} but was not assigned" }
|
86
101
|
end
|
87
102
|
end
|
88
103
|
end
|
89
104
|
|
90
105
|
describe "#with_a" do
|
91
|
-
|
92
|
-
@assign = spec.actual_assign_class.new
|
93
|
-
end
|
94
|
-
|
95
|
-
let(:actual_assign_class) { Class.new.tap {|klass| allow(klass).to receive(:name) { "FooClass" } } }
|
96
|
-
let(:expected_assign_class) { actual_assign_class }
|
106
|
+
let(:expected_assign_class) { Class.new.tap {|klass| allow(klass).to receive(:name) { "FooClass" } } }
|
97
107
|
|
98
108
|
let(:matcher) { super().with_a(expected_assign_class) }
|
99
109
|
|
@@ -103,40 +113,48 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
103
113
|
specify { expect(subject).to eq "assign @assign with an instance of #{expected_assign_class.name}" }
|
104
114
|
end
|
105
115
|
|
106
|
-
context "
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
116
|
+
context "when assigned" do
|
117
|
+
controller_action do
|
118
|
+
@assign = spec.actual_assign_class.new
|
119
|
+
end
|
120
|
+
|
121
|
+
context "with the right class" do
|
122
|
+
let(:actual_assign_class) { expected_assign_class }
|
123
|
+
|
124
|
+
specify { expect(subject).to match(_controller) }
|
125
|
+
|
126
|
+
describe_failure_message_when_negated do
|
127
|
+
specify { expect(subject).to eq "expected @assign to not be assigned with an instance of #{expected_assign_class.name}" }
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
context "with the wrong class" do
|
132
|
+
let(:actual_assign_class) { Class.new.tap {|klass| allow(klass).to receive(:name) { "BarClass" } } }
|
133
|
+
|
134
|
+
specify { expect(subject).to_not match(_controller) }
|
135
|
+
|
136
|
+
describe_failure_message do
|
137
|
+
specify { expect(subject).to eq "expected @assign to be assigned with an instance of #{expected_assign_class.name} but was assigned with an instance of #{actual_assign_class.name}"
|
138
|
+
}
|
139
|
+
end
|
111
140
|
end
|
112
141
|
end
|
113
142
|
|
114
|
-
context "
|
115
|
-
|
143
|
+
context "when not assigned" do
|
144
|
+
controller_action do
|
145
|
+
# no assign
|
146
|
+
end
|
116
147
|
|
117
148
|
specify { expect(subject).to_not match(_controller) }
|
118
|
-
|
149
|
+
|
119
150
|
describe_failure_message do
|
120
|
-
specify { expect(subject).to eq "expected @assign to be assigned with an instance of #{expected_assign_class.name} but was assigned
|
121
|
-
}
|
151
|
+
specify { expect(subject).to eq "expected @assign to be assigned with an instance of #{expected_assign_class.name} but was not assigned" }
|
122
152
|
end
|
123
153
|
end
|
124
154
|
end
|
125
155
|
|
126
156
|
describe "#with_a_new" do
|
127
|
-
|
128
|
-
@assign = spec.actual_assign_class.new
|
129
|
-
end
|
130
|
-
|
131
|
-
let(:actual_persisted?) { false }
|
132
|
-
let(:actual_assign_class) do
|
133
|
-
Class.new.tap do |klass|
|
134
|
-
allow(klass).to receive(:name) { "FooClass" }
|
135
|
-
allow_any_instance_of(klass).to receive(:persisted?) { actual_persisted? }
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
let(:expected_assign_class) { actual_assign_class }
|
157
|
+
let(:expected_assign_class) { Class.new.tap {|klass| allow(klass).to receive(:name) { "FooClass" } } }
|
140
158
|
|
141
159
|
let(:matcher) { super().with_a_new(expected_assign_class) }
|
142
160
|
|
@@ -146,64 +164,90 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
146
164
|
specify { expect(subject).to eq "assign @assign with a new instance of #{expected_assign_class.name}" }
|
147
165
|
end
|
148
166
|
|
149
|
-
context "
|
150
|
-
|
167
|
+
context "when assigned" do
|
168
|
+
controller_action do
|
169
|
+
@assign = spec.actual_assign_class.new
|
170
|
+
end
|
151
171
|
|
152
|
-
|
153
|
-
specify { expect(subject).to match(_controller) }
|
172
|
+
let(:actual_assign_class) { expected_assign_class }
|
154
173
|
|
155
|
-
|
156
|
-
|
174
|
+
before do
|
175
|
+
actual_assign_class.tap do |klass|
|
176
|
+
allow_any_instance_of(klass).to receive(:persisted?) { actual_persisted? }
|
157
177
|
end
|
158
178
|
end
|
159
179
|
|
160
|
-
context "with a
|
161
|
-
let(:
|
162
|
-
|
180
|
+
context "with a new object" do
|
181
|
+
let(:actual_persisted?) { false }
|
182
|
+
|
183
|
+
context "with the right class" do
|
184
|
+
specify { expect(subject).to match(_controller) }
|
185
|
+
|
186
|
+
describe_failure_message_when_negated do
|
187
|
+
specify { expect(subject).to eq "expected @assign to not be assigned with a new instance of #{expected_assign_class.name}" }
|
188
|
+
end
|
163
189
|
end
|
164
190
|
|
165
|
-
|
191
|
+
context "with a descendant class" do
|
192
|
+
let(:actual_assign_class) do
|
193
|
+
Class.new(super())
|
194
|
+
end
|
166
195
|
|
167
|
-
|
168
|
-
specify { expect(subject).to eq "expected @assign to not be assigned with a new instance of #{expected_assign_class.name}" }
|
169
|
-
end
|
170
|
-
end
|
196
|
+
specify { expect(subject).to match(_controller) }
|
171
197
|
|
172
|
-
|
173
|
-
|
198
|
+
describe_failure_message_when_negated do
|
199
|
+
specify { expect(subject).to eq "expected @assign to not be assigned with a new instance of #{expected_assign_class.name}" }
|
200
|
+
end
|
201
|
+
end
|
174
202
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
specify { expect(subject).
|
179
|
-
|
203
|
+
context "with the wrong class" do
|
204
|
+
let(:actual_assign_class) { Class.new.tap {|klass| allow(klass).to receive(:name) { "BarClass" } } }
|
205
|
+
|
206
|
+
specify { expect(subject).to_not match(_controller) }
|
207
|
+
|
208
|
+
describe_failure_message do
|
209
|
+
specify { expect(subject).to eq "expected @assign to be assigned with a new instance of #{expected_assign_class.name} but was assigned with a new instance of #{actual_assign_class.name}"
|
210
|
+
}
|
211
|
+
end
|
180
212
|
end
|
181
213
|
end
|
182
|
-
end
|
183
214
|
|
184
|
-
|
185
|
-
|
215
|
+
context "with a persisted object" do
|
216
|
+
let(:actual_persisted?) { true }
|
186
217
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
218
|
+
context "with the right class" do
|
219
|
+
specify { expect(subject).to_not match(_controller) }
|
220
|
+
|
221
|
+
describe_failure_message do
|
222
|
+
specify { expect(subject).to eq "expected @assign to be assigned with a new instance of #{expected_assign_class.name} but was assigned with a persisted instance of #{actual_assign_class.name}"
|
223
|
+
}
|
224
|
+
end
|
193
225
|
end
|
194
|
-
end
|
195
226
|
|
196
|
-
|
197
|
-
|
227
|
+
context "with the wrong class" do
|
228
|
+
let(:actual_assign_class) { Class.new.tap {|klass| allow(klass).to receive(:name) { "BarClass" } } }
|
198
229
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
230
|
+
specify { expect(subject).to_not match(_controller) }
|
231
|
+
|
232
|
+
describe_failure_message do
|
233
|
+
specify { expect(subject).to eq "expected @assign to be assigned with a new instance of #{expected_assign_class.name} but was assigned with a persisted instance of #{actual_assign_class.name}"
|
234
|
+
}
|
235
|
+
end
|
204
236
|
end
|
205
237
|
end
|
206
238
|
end
|
239
|
+
|
240
|
+
context "when not assigned" do
|
241
|
+
controller_action do
|
242
|
+
# no assign
|
243
|
+
end
|
244
|
+
|
245
|
+
specify { expect(subject).to_not match(_controller) }
|
246
|
+
|
247
|
+
describe_failure_message do
|
248
|
+
specify { expect(subject).to eq "expected @assign to be assigned with a new instance of #{expected_assign_class.name} but was not assigned" }
|
249
|
+
end
|
250
|
+
end
|
207
251
|
end
|
208
252
|
|
209
253
|
context "multiple assertions" do
|
@@ -225,10 +269,10 @@ describe Warp::ControllerMatchers::AssignMatcher, type: :controller do
|
|
225
269
|
end
|
226
270
|
|
227
271
|
behaviour do
|
228
|
-
specify { expect{ subject }.to raise_error(
|
272
|
+
specify { expect{ subject }.to raise_error(NoMethodError) }
|
229
273
|
end
|
230
274
|
end
|
231
275
|
end
|
232
276
|
end
|
233
277
|
end
|
234
|
-
end
|
278
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Drake-Brockman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -43,22 +43,22 @@ files:
|
|
43
43
|
- LICENSE
|
44
44
|
- README.md
|
45
45
|
- Rakefile
|
46
|
-
- gemfiles/rails_3.2_rspec_2.99.gemfile
|
47
46
|
- gemfiles/rails_3.2_rspec_3.0.gemfile
|
48
47
|
- gemfiles/rails_3.2_rspec_3.1.gemfile
|
49
48
|
- gemfiles/rails_3.2_rspec_3.2.gemfile
|
50
|
-
- gemfiles/
|
49
|
+
- gemfiles/rails_3.2_rspec_3.3.gemfile
|
51
50
|
- gemfiles/rails_4.0_rspec_3.0.gemfile
|
52
51
|
- gemfiles/rails_4.0_rspec_3.1.gemfile
|
53
52
|
- gemfiles/rails_4.0_rspec_3.2.gemfile
|
54
|
-
- gemfiles/rails_4.
|
53
|
+
- gemfiles/rails_4.0_rspec_3.3.gemfile
|
55
54
|
- gemfiles/rails_4.1_rspec_3.0.gemfile
|
56
55
|
- gemfiles/rails_4.1_rspec_3.1.gemfile
|
57
56
|
- gemfiles/rails_4.1_rspec_3.2.gemfile
|
58
|
-
- gemfiles/rails_4.
|
57
|
+
- gemfiles/rails_4.1_rspec_3.3.gemfile
|
59
58
|
- gemfiles/rails_4.2_rspec_3.0.gemfile
|
60
59
|
- gemfiles/rails_4.2_rspec_3.1.gemfile
|
61
60
|
- gemfiles/rails_4.2_rspec_3.2.gemfile
|
61
|
+
- gemfiles/rails_4.2_rspec_3.3.gemfile
|
62
62
|
- lib/warp.rb
|
63
63
|
- lib/warp/action_matchers.rb
|
64
64
|
- lib/warp/action_matchers/create_matcher.rb
|
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
112
|
version: '0'
|
113
113
|
requirements: []
|
114
114
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.4.
|
115
|
+
rubygems_version: 2.4.8
|
116
116
|
signing_key:
|
117
117
|
specification_version: 4
|
118
118
|
summary: Awesome RSpec matchers for testing your Rails applications.
|