Commit 9f532746832b4b7377c8626788cf843b40ccd064
1 parent
20ed82ce
Exists in
colab
and in
4 other branches
Fix MetricConfigurationController#update unit test
It was missing proper mocks for the set_metric! before_action from BaseMetricConfigurationsController. Signed off by: Heitor Reis <marcheing@gmail.com>
Showing
1 changed file
with
39 additions
and
27 deletions
Show diff stats
spec/controllers/metric_configurations_controller_spec.rb
@@ -169,42 +169,54 @@ describe MetricConfigurationsController, :type => :controller do | @@ -169,42 +169,54 @@ describe MetricConfigurationsController, :type => :controller do | ||
169 | sign_in FactoryGirl.create(:user) | 169 | sign_in FactoryGirl.create(:user) |
170 | end | 170 | end |
171 | 171 | ||
172 | - context 'when user owns the metric configuration' do | 172 | + context 'when the given metric exists' do |
173 | + let!(:metric_collector) { mock('metric_collector') } | ||
174 | + | ||
173 | before :each do | 175 | before :each do |
174 | - KalibroConfiguration.expects(:find).with(kalibro_configuration.id).returns kalibro_configuration | ||
175 | - subject.expects(:metric_configuration_owner?).returns true | ||
176 | - ReadingGroup.expects(:find).with(reading_group.id).returns(reading_group) | 176 | + metric_collector.expects(:find_metric_by_code).with(metric_configuration.metric.code).returns(metric_configuration.metric) |
177 | + | ||
178 | + KalibroClient::Entities::Processor::MetricCollectorDetails.expects(:find_by_name). | ||
179 | + with(metric_configuration.metric.metric_collector_name). | ||
180 | + returns(metric_collector) | ||
177 | end | 181 | end |
178 | 182 | ||
179 | - context 'with valid fields' do | 183 | + context 'and the user owns the metric configuration' do |
180 | before :each do | 184 | before :each do |
181 | - MetricConfiguration.expects(:find).with(metric_configuration.id).returns(metric_configuration) | ||
182 | - MetricConfiguration.any_instance.expects(:update).with(update_params).returns(true) | ||
183 | - | ||
184 | - post :update, | ||
185 | - kalibro_configuration_id: metric_configuration.kalibro_configuration_id, id: metric_configuration.id, | ||
186 | - metric_configuration: metric_configuration_params, | ||
187 | - metric_collector_name: metric_configuration.metric.metric_collector_name, | ||
188 | - metric_code: metric_configuration.metric.code | 185 | + KalibroConfiguration.expects(:find).with(kalibro_configuration.id).returns kalibro_configuration |
186 | + subject.expects(:metric_configuration_owner?).returns true | ||
187 | + ReadingGroup.expects(:find).with(reading_group.id).returns(reading_group) | ||
189 | end | 188 | end |
190 | 189 | ||
191 | - it { is_expected.to redirect_to(kalibro_configuration_path(id: metric_configuration.kalibro_configuration_id)) } | ||
192 | - it { is_expected.to respond_with(:redirect) } | ||
193 | - end | 190 | + context 'with valid fields' do |
191 | + before :each do | ||
192 | + MetricConfiguration.expects(:find).with(metric_configuration.id).returns(metric_configuration) | ||
193 | + MetricConfiguration.any_instance.expects(:update).with(update_params).returns(true) | ||
194 | 194 | ||
195 | - context 'with an invalid field' do | ||
196 | - before :each do | ||
197 | - MetricConfiguration.expects(:find).with(metric_configuration.id).returns(metric_configuration) | ||
198 | - MetricConfiguration.any_instance.expects(:update).with(update_params).returns(false) | ||
199 | - | ||
200 | - post :update, | ||
201 | - kalibro_configuration_id: metric_configuration.kalibro_configuration_id, id: metric_configuration.id, | ||
202 | - metric_configuration: metric_configuration_params, | ||
203 | - metric_collector_name: metric_configuration.metric.metric_collector_name, | ||
204 | - metric_code: metric_configuration.metric.code | 195 | + post :update, |
196 | + kalibro_configuration_id: metric_configuration.kalibro_configuration_id, id: metric_configuration.id, | ||
197 | + metric_configuration: metric_configuration_params, | ||
198 | + metric_collector_name: metric_configuration.metric.metric_collector_name, | ||
199 | + metric_code: metric_configuration.metric.code | ||
200 | + end | ||
201 | + | ||
202 | + it { is_expected.to redirect_to(kalibro_configuration_path(id: metric_configuration.kalibro_configuration_id)) } | ||
203 | + it { is_expected.to respond_with(:redirect) } | ||
205 | end | 204 | end |
206 | 205 | ||
207 | - it { is_expected.to render_template(:edit) } | 206 | + context 'with an invalid field' do |
207 | + before :each do | ||
208 | + MetricConfiguration.expects(:find).with(metric_configuration.id).returns(metric_configuration) | ||
209 | + MetricConfiguration.any_instance.expects(:update).with(update_params).returns(false) | ||
210 | + | ||
211 | + post :update, | ||
212 | + kalibro_configuration_id: metric_configuration.kalibro_configuration_id, id: metric_configuration.id, | ||
213 | + metric_configuration: metric_configuration_params, | ||
214 | + metric_collector_name: metric_configuration.metric.metric_collector_name, | ||
215 | + metric_code: metric_configuration.metric.code | ||
216 | + end | ||
217 | + | ||
218 | + it { is_expected.to render_template(:edit) } | ||
219 | + end | ||
208 | end | 220 | end |
209 | end | 221 | end |
210 | 222 |