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 | ... | ... |