Commit 9f532746832b4b7377c8626788cf843b40ccd064

Authored by Rafael Manzo
1 parent 20ed82ce

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>
spec/controllers/metric_configurations_controller_spec.rb
@@ -169,42 +169,54 @@ describe MetricConfigurationsController, :type =&gt; :controller do @@ -169,42 +169,54 @@ describe MetricConfigurationsController, :type =&gt; :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