Commit 8d743567eab60e239c912c6aec8b8ba4800d389f
1 parent
ddd5ea9b
Exists in
master
and in
1 other branch
Refactor Github issue spec
Showing
1 changed file
with
20 additions
and
11 deletions
Show diff stats
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 | - |