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,26 +71,42 @@ describe MetricConfigurationsController, :type => :controller do | ||
71 | before :each do | 71 | before :each do |
72 | KalibroConfiguration.expects(:find).with(kalibro_configuration.id).returns kalibro_configuration | 72 | KalibroConfiguration.expects(:find).with(kalibro_configuration.id).returns kalibro_configuration |
73 | subject.expects(:kalibro_configuration_owner?).returns true | 73 | subject.expects(:kalibro_configuration_owner?).returns true |
74 | - ReadingGroup.expects(:find).with(reading_group.id).returns(reading_group) | ||
75 | end | 74 | end |
76 | 75 | ||
77 | - context 'with valid fields' do | 76 | + context 'with valid metric' do |
78 | before :each do | 77 | before :each do |
79 | - MetricConfiguration.any_instance.expects(:save).returns(true) | ||
80 | KalibroClient::Entities::Processor::MetricCollectorDetails.expects(:find_by_name).with(metric_collector.name).returns(metric_collector) | 78 | KalibroClient::Entities::Processor::MetricCollectorDetails.expects(:find_by_name).with(metric_collector.name).returns(metric_collector) |
81 | metric_collector.expects(:find_metric_by_name).with(metric_configuration.metric.name).returns(metric_configuration.metric) | 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 | end | 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 | end | 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 | before :each do | 107 | before :each do |
91 | - MetricConfiguration.any_instance.expects(:save).returns(false) | ||
92 | KalibroClient::Entities::Processor::MetricCollectorDetails.expects(:find_by_name).with(metric_collector.name).returns(metric_collector) | 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 | 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 | 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 | end | 112 | end |