Commit 73b93dec8bd64b15e816022a007ca7bada481fbc
Committed by
Rafael Manzo
1 parent
c5df944d
Exists in
colab
and in
4 other branches
Choose metric page sends data using post method
Instead of send data via get: it causes error when the metric name had special characters. signed-off-by: Diego Araújo <diegoamc90@gmail.com>
Showing
5 changed files
with
31 additions
and
34 deletions
Show diff stats
app/assets/javascripts/base_tool.js.coffee
1 | 1 | class @BaseTool |
2 | 2 | |
3 | 3 | # Static Method |
4 | - @choose_metric: (mezuro_configuration_id, metric_name, base_tool_name) -> | |
5 | - $.post '/mezuro_configurations/' + mezuro_configuration_id + '/metric_configurations/new', | |
6 | - { | |
7 | - mezuro_configuration_id: mezuro_configuration_id, | |
8 | - metric_name: metric_name, | |
9 | - base_tool_name: base_tool_name | |
10 | - } | |
4 | + @choose_metric: (metric_name, base_tool_name) -> | |
5 | + $("#metric_name").val(metric_name) | |
6 | + $("#base_tool_name").val(base_tool_name) | |
7 | + $("form").submit() | ... | ... |
app/controllers/metric_configurations_controller.rb
... | ... | @@ -9,6 +9,7 @@ class MetricConfigurationsController < ApplicationController |
9 | 9 | |
10 | 10 | def choose_metric |
11 | 11 | @mezuro_configuration_id = params[:mezuro_configuration_id].to_i |
12 | + @metric_configuration_id = params[:metric_configuration_id].to_i | |
12 | 13 | @base_tools = KalibroGem::Entities::BaseTool.all |
13 | 14 | end |
14 | 15 | |
... | ... | @@ -17,8 +18,6 @@ class MetricConfigurationsController < ApplicationController |
17 | 18 | @metric_configuration.configuration_id = params[:mezuro_configuration_id].to_i |
18 | 19 | @metric_configuration.base_tool_name = params[:base_tool_name] |
19 | 20 | @metric_configuration.metric = KalibroGem::Entities::BaseTool.find_by_name(params[:base_tool_name]).metric params[:metric_name] |
20 | - format.html { redirect_to mezuro_configuration_path(@metric_configuration.configuration_id), notice: 'Metric Configuration was successfully created.' } | |
21 | - | |
22 | 21 | end |
23 | 22 | |
24 | 23 | def create | ... | ... |
app/views/metric_configurations/choose_metric.html.erb
... | ... | @@ -2,14 +2,17 @@ |
2 | 2 | <h1>Choose a metric from a base tool:</h1> |
3 | 3 | </div> |
4 | 4 | |
5 | +<%= form_tag mezuro_configuration_new_metric_configuration_path(@mezuro_configuration_id) do %> | |
6 | + <%= hidden_field_tag(:base_tool_name,) %> | |
7 | + <%= hidden_field_tag(:metric_name) %> | |
8 | +<% end %> | |
9 | + | |
5 | 10 | <div id="base-tool-accordion"> |
6 | - <% @base_tools.each do |base_tool| %> | |
11 | + <% @base_tools.each do |base_tool| %> | |
7 | 12 | <h3><%= base_tool.name %></h3> |
8 | 13 | <div> |
9 | 14 | <% base_tool.supported_metrics.each do |metric| %> |
10 | - <%= link_to metric.name, '', | |
11 | - onclick: "BaseTool.choose_metric(#{@mezuro_configuration_id}, '#{metric.name}', '#{base_tool.name}')", | |
12 | - remote: true%><br> | |
15 | + <%= link_to metric.name, '#', onclick: "BaseTool.choose_metric('#{metric.name}', '#{base_tool.name}')", remote: true %><br> | |
13 | 16 | <% end %> |
14 | 17 | </div> |
15 | 18 | <% end %> | ... | ... |
features/metric_configuration/create.feature
... | ... | @@ -9,7 +9,7 @@ Feature: Metric Configuration Creation |
9 | 9 | And I am at the Sample Configuration page |
10 | 10 | Then I should not see New Metric Configuration |
11 | 11 | |
12 | - @kalibro_restart | |
12 | + @kalibro_restart @javascript | |
13 | 13 | Scenario: metric configuration creation |
14 | 14 | Given I am a regular user |
15 | 15 | And I am signed in | ... | ... |
spec/controllers/metric_configurations_controller_spec.rb
... | ... | @@ -20,32 +20,30 @@ describe MetricConfigurationsController do |
20 | 20 | end |
21 | 21 | end |
22 | 22 | |
23 | - pending 'testing the js behavior first' do | |
24 | - describe 'new' do | |
25 | - let(:base_tool) { FactoryGirl.build(:base_tool) } | |
23 | + describe 'new' do | |
24 | + let(:base_tool) { FactoryGirl.build(:base_tool) } | |
25 | + before :each do | |
26 | + sign_in FactoryGirl.create(:user) | |
27 | + end | |
28 | + | |
29 | + context 'when the current user owns the mezuro configuration' do | |
26 | 30 | before :each do |
27 | - sign_in FactoryGirl.create(:user) | |
31 | + subject.expects(:mezuro_configuration_owner?).returns true | |
32 | + KalibroGem::Entities::BaseTool.expects(:find_by_name).with(base_tool.name).returns(base_tool) | |
33 | + post :new, mezuro_configuration_id: mezuro_configuration.id, metric_name: "Lines of Code", base_tool_name: base_tool.name | |
28 | 34 | end |
29 | 35 | |
30 | - context 'when the current user owns the mezuro configuration' do | |
31 | - before :each do | |
32 | - subject.expects(:mezuro_configuration_owner?).returns true | |
33 | - KalibroGem::Entities::BaseTool.expects(:find_by_name).with(base_tool.name).returns(base_tool) | |
34 | - get :new, mezuro_configuration_id: mezuro_configuration.id, metric_name: "Lines of Code", base_tool_name: base_tool.name | |
35 | - end | |
36 | + it { should respond_with(:success) } | |
37 | + it { should render_template(:new) } | |
38 | + end | |
36 | 39 | |
37 | - it { should respond_with(:success) } | |
38 | - it { should render_template(:new) } | |
40 | + context "when the current user doesn't owns the mezuro configuration" do | |
41 | + before :each do | |
42 | + post :new, mezuro_configuration_id: mezuro_configuration.id, metric_name: "Lines of Code", base_tool_name: base_tool.name | |
39 | 43 | end |
40 | 44 | |
41 | - context "when the current user doesn't owns the mezuro configuration" do | |
42 | - before :each do | |
43 | - get :new, mezuro_configuration_id: mezuro_configuration.id, metric_name: "Lines of Code", base_tool_name: base_tool.name | |
44 | - end | |
45 | - | |
46 | - it { should redirect_to(mezuro_configurations_url) } | |
47 | - it { should respond_with(:redirect) } | |
48 | - end | |
45 | + it { should redirect_to(mezuro_configurations_url) } | |
46 | + it { should respond_with(:redirect) } | |
49 | 47 | end |
50 | 48 | end |
51 | 49 | ... | ... |