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 169 sign_in FactoryGirl.create(:user)
170 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 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 181 end
178 182  
179   - context 'with valid fields' do
  183 + context 'and the user owns the metric configuration' do
180 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 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 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 220 end
209 221 end
210 222  
... ...