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 |