Commit ac5639ecb803b104673d65087779b130484d4d80

Authored by Matteo Latini
1 parent 854e1cbb
Exists in master and in 1 other branch production

fixes issue #201

app/views/errs/_issue_tracker_links.html.haml
... ... @@ -6,7 +6,10 @@
6 6 %span.disabled= link_to 'creating...', '#', :class => "#{@problem.issue_type}_inactive create-issue"
7 7 = link_to 'retry', create_issue_app_err_path(@app, @problem), :method => :post
8 8 - else
9   - - if current_user.can_create_github_issues? && @app.github_repo?
10   - %span= link_to 'create issue', create_issue_app_err_path(@app, @problem, :tracker => 'user_github'), :method => :post, :class => "github_create create-issue"
  9 + - if @app.github_repo?
  10 + - if current_user.can_create_github_issues?
  11 + %span= link_to 'create issue', create_issue_app_err_path(@app, @problem, :tracker => 'user_github'), :method => :post, :class => "github_create create-issue"
  12 + - elsif @app.issue_tracker_configured? && @app.issue_tracker.is_a?(GithubIssuesTracker)
  13 + %span= link_to 'create issue', create_issue_app_err_path(@app, @problem), :method => :post, :class => "github_create create-issue"
11 14 - if @app.issue_tracker_configured? && !@app.issue_tracker.is_a?(GithubIssuesTracker)
12 15 %span= link_to 'create issue', create_issue_app_err_path(@app, @problem), :method => :post, :class => "#{@app.issue_tracker.label}_create create-issue"
... ...
spec/views/errs/show.html.haml_spec.rb
... ... @@ -13,6 +13,12 @@ describe "errs/show.html.haml" do
13 13 controller.stub(:current_user) { Fabricate(:user) }
14 14 end
15 15  
  16 + def with_issue_tracker(tracker, problem)
  17 + problem.app.issue_tracker = tracker.new :api_token => "token token token", :project_id => "1234"
  18 + assign :problem, problem
  19 + assign :app, problem.app
  20 + end
  21 +
16 22 describe "content_for :action_bar" do
17 23 def action_bar
18 24 view.content_for(:action_bar)
... ... @@ -68,6 +74,16 @@ describe "errs/show.html.haml" do
68 74  
69 75 action_bar.should have_selector("span a.github_create.create-issue", :text => 'create issue')
70 76 end
  77 +
  78 + it 'should allow creating issue for github if application has a github tracker' do
  79 + problem = Fabricate(:problem_with_comments, :app => Fabricate(:app, :github_repo => "test_user/test_repo"))
  80 + with_issue_tracker(GithubIssuesTracker, problem)
  81 + assign :problem, problem
  82 + assign :app, problem.app
  83 + render
  84 +
  85 + action_bar.should have_selector("span a.github_create.create-issue", :text => 'create issue')
  86 + end
71 87 end
72 88 end
73 89  
... ... @@ -87,15 +103,9 @@ describe "errs/show.html.haml" do
87 103 end
88 104  
89 105 context "with issue tracker" do
90   - def with_issue_tracker(problem)
91   - problem.app.issue_tracker = PivotalLabsTracker.new :api_token => "token token token", :project_id => "1234"
92   - assign :problem, problem
93   - assign :app, problem.app
94   - end
95   -
96 106 it 'should not display the comments section' do
97 107 problem = Fabricate(:problem)
98   - with_issue_tracker(problem)
  108 + with_issue_tracker(PivotalLabsTracker, problem)
99 109 render
100 110 view.view_flow.get(:comments).should be_blank
101 111 end
... ... @@ -103,7 +113,7 @@ describe "errs/show.html.haml" do
103 113 it 'should display existing comments' do
104 114 problem = Fabricate(:problem_with_comments)
105 115 problem.reload
106   - with_issue_tracker(problem)
  116 + with_issue_tracker(PivotalLabsTracker, problem)
107 117 render
108 118  
109 119 view.content_for(:comments).should include('Test comment')
... ...