Commit 8d743567eab60e239c912c6aec8b8ba4800d389f

Authored by Arthur Neves
1 parent ddd5ea9b
Exists in master and in 1 other branch production

Refactor Github issue spec

spec/models/issue_trackers/github_issues_tracker_spec.rb
1 require 'spec_helper' 1 require 'spec_helper'
2 2
3 describe IssueTrackers::GithubIssuesTracker do 3 describe IssueTrackers::GithubIssuesTracker do
4 - it "should create an issue on GitHub Issues with problem params, and set issue link for problem" do  
5 - repo = "test_user/test_repo"  
6 - notice = Fabricate :notice 4 +
  5 + let(:repo) { "test_user/test_repo" }
  6 +
  7 + let(:notice) do
  8 + Fabricate :notice
  9 + end
  10 +
  11 + let(:problem) do
  12 + notice.problem
  13 + end
  14 +
  15 + let!(:tracker) do
7 notice.app.github_repo = repo 16 notice.app.github_repo = repo
8 - tracker = Fabricate :github_issues_tracker, :app => notice.app  
9 - problem = notice.problem 17 + Fabricate :github_issues_tracker, app: notice.app
  18 + end
10 19
  20 + it "should create an issue on GitHub Issues with problem params, and set issue link for problem" do
11 number = 5 21 number = 5
12 - @issue_link = "https://github.com/#{repo}/issues/#{number}" 22 + issue_link = "https://github.com/#{repo}/issues/#{number}"
13 body = <<EOF 23 body = <<EOF
14 { 24 {
15 "position": 1.0, 25 "position": 1.0,
@@ -21,7 +31,7 @@ describe IssueTrackers::GithubIssuesTracker do @@ -21,7 +31,7 @@ describe IssueTrackers::GithubIssuesTracker do
21 "title": "Test Issue", 31 "title": "Test Issue",
22 "user": "test_user", 32 "user": "test_user",
23 "state": "open", 33 "state": "open",
24 - "html_url": "#{@issue_link}" 34 + "html_url": "#{issue_link}"
25 } 35 }
26 EOF 36 EOF
27 37
@@ -29,10 +39,10 @@ EOF @@ -29,10 +39,10 @@ EOF
29 "https://#{tracker.username}:#{tracker.password}@api.github.com/repos/#{repo}/issues"). 39 "https://#{tracker.username}:#{tracker.password}@api.github.com/repos/#{repo}/issues").
30 to_return(:status => 201, 40 to_return(:status => 201,
31 :headers => { 41 :headers => {
32 - 'Location' => @issue_link, 42 + 'Location' => issue_link,
33 'Content-Type' => 'application/json', 43 'Content-Type' => 'application/json',
34 }, 44 },
35 - :body => body ) 45 + :body => body )
36 46
37 problem.app.issue_tracker.create_issue(problem) 47 problem.app.issue_tracker.create_issue(problem)
38 problem.reload 48 problem.reload
@@ -41,7 +51,6 @@ EOF @@ -41,7 +51,6 @@ EOF
41 expect(WebMock).to requested.with(:body => /[production][foo#bar] FooError: Too Much Bar/) 51 expect(WebMock).to requested.with(:body => /[production][foo#bar] FooError: Too Much Bar/)
42 expect(WebMock).to requested.with(:body => /See this exception on Errbit/) 52 expect(WebMock).to requested.with(:body => /See this exception on Errbit/)
43 53
44 - expect(problem.issue_link).to eq @issue_link 54 + expect(problem.issue_link).to eq issue_link
45 end 55 end
46 end 56 end
47 -