Commit ed86c4b3e03e388c1f9097d32cb22cb4d05eb129
Committed by
Rafael Manzo
1 parent
8c64ffc8
Exists in
colab
and in
4 other branches
Add test for metric configuration creation with invalid metric
Test the path where the provided metric's type is different from the controller's one. Signed-off-by: Rafael Reggiani Manzo <rr.manzo@gmail.com>
Showing
1 changed file
with
24 additions
and
8 deletions
Show diff stats
spec/controllers/metric_configurations_controller_spec.rb
| ... | ... | @@ -71,26 +71,42 @@ describe MetricConfigurationsController, :type => :controller do |
| 71 | 71 | before :each do |
| 72 | 72 | KalibroConfiguration.expects(:find).with(kalibro_configuration.id).returns kalibro_configuration |
| 73 | 73 | subject.expects(:kalibro_configuration_owner?).returns true |
| 74 | - ReadingGroup.expects(:find).with(reading_group.id).returns(reading_group) | |
| 75 | 74 | end |
| 76 | 75 | |
| 77 | - context 'with valid fields' do | |
| 76 | + context 'with valid metric' do | |
| 78 | 77 | before :each do |
| 79 | - MetricConfiguration.any_instance.expects(:save).returns(true) | |
| 80 | 78 | KalibroClient::Entities::Processor::MetricCollectorDetails.expects(:find_by_name).with(metric_collector.name).returns(metric_collector) |
| 81 | 79 | metric_collector.expects(:find_metric_by_name).with(metric_configuration.metric.name).returns(metric_configuration.metric) |
| 80 | + ReadingGroup.expects(:find).with(reading_group.id).returns(reading_group) | |
| 81 | + end | |
| 82 | 82 | |
| 83 | - post :create, kalibro_configuration_id: kalibro_configuration.id, metric_configuration: metric_configuration_params, metric_collector_name: metric_collector.name, metric_name: metric_configuration.metric.name | |
| 83 | + context 'with valid fields' do | |
| 84 | + before :each do | |
| 85 | + MetricConfiguration.any_instance.expects(:save).returns(true) | |
| 86 | + | |
| 87 | + post :create, kalibro_configuration_id: kalibro_configuration.id, metric_configuration: metric_configuration_params, metric_collector_name: metric_collector.name, metric_name: metric_configuration.metric.name | |
| 88 | + end | |
| 89 | + | |
| 90 | + it { is_expected.to respond_with(:redirect) } | |
| 84 | 91 | end |
| 85 | 92 | |
| 86 | - it { is_expected.to respond_with(:redirect) } | |
| 93 | + context 'with invalid fields' do | |
| 94 | + before :each do | |
| 95 | + MetricConfiguration.any_instance.expects(:save).returns(false) | |
| 96 | + | |
| 97 | + post :create, kalibro_configuration_id: kalibro_configuration.id, metric_configuration: metric_configuration_params, metric_collector_name: metric_collector.name, metric_name: metric_configuration.metric.name | |
| 98 | + end | |
| 99 | + | |
| 100 | + it { is_expected.to render_template(:new) } | |
| 101 | + end | |
| 87 | 102 | end |
| 88 | 103 | |
| 89 | - context 'with invalid fields' do | |
| 104 | + context 'with invalid metric collector, metric or metric type' do | |
| 105 | + let(:invalid_metric) { FactoryGirl.build(:hotspot_metric) } | |
| 106 | + | |
| 90 | 107 | before :each do |
| 91 | - MetricConfiguration.any_instance.expects(:save).returns(false) | |
| 92 | 108 | KalibroClient::Entities::Processor::MetricCollectorDetails.expects(:find_by_name).with(metric_collector.name).returns(metric_collector) |
| 93 | - metric_collector.expects(:find_metric_by_name).with(metric_configuration.metric.name).returns(metric_configuration.metric) | |
| 109 | + metric_collector.expects(:find_metric_by_name).with(metric_configuration.metric.name).returns(invalid_metric) | |
| 94 | 110 | |
| 95 | 111 | post :create, kalibro_configuration_id: kalibro_configuration.id, metric_configuration: metric_configuration_params, metric_collector_name: metric_collector.name, metric_name: metric_configuration.metric.name |
| 96 | 112 | end | ... | ... |