Commit ed86c4b3e03e388c1f9097d32cb22cb4d05eb129

Authored by Heitor
Committed by Rafael Manzo
1 parent 8c64ffc8

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>
spec/controllers/metric_configurations_controller_spec.rb
... ... @@ -71,26 +71,42 @@ describe MetricConfigurationsController, :type =&gt; :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
... ...