Commit 5e0ed1f2e0bbaf080f477c710a697c281cdb27ef
1 parent
e51f7975
Exists in
master
and in
1 other branch
Minimal test for request to lighthouseapp.
Showing
8 changed files
with
46 additions
and
1 deletions
Show diff stats
Gemfile
Gemfile.lock
... | ... | @@ -28,11 +28,13 @@ GEM |
28 | 28 | activemodel (= 3.0.5) |
29 | 29 | activesupport (= 3.0.5) |
30 | 30 | activesupport (3.0.5) |
31 | + addressable (2.2.4) | |
31 | 32 | arel (2.0.9) |
32 | 33 | bcrypt-ruby (2.1.4) |
33 | 34 | bson (1.2.4) |
34 | 35 | bson_ext (1.2.4) |
35 | 36 | builder (2.1.2) |
37 | + crack (0.1.8) | |
36 | 38 | database_cleaner (0.6.5) |
37 | 39 | devise (1.1.8) |
38 | 40 | bcrypt-ruby (~> 2.1.2) |
... | ... | @@ -102,6 +104,9 @@ GEM |
102 | 104 | tzinfo (0.3.25) |
103 | 105 | warden (1.0.3) |
104 | 106 | rack (>= 1.0.0) |
107 | + webmock (1.6.2) | |
108 | + addressable (>= 2.2.2) | |
109 | + crack (>= 0.1.7) | |
105 | 110 | will_paginate (3.0.pre2) |
106 | 111 | |
107 | 112 | PLATFORMS |
... | ... | @@ -119,4 +124,5 @@ DEPENDENCIES |
119 | 124 | rails (= 3.0.5) |
120 | 125 | rspec (~> 2.5) |
121 | 126 | rspec-rails (~> 2.5) |
127 | + webmock | |
122 | 128 | will_paginate | ... | ... |
app/models/issue_tracker.rb
... | ... | @@ -11,6 +11,17 @@ class IssueTracker |
11 | 11 | field :project_id, :type => String |
12 | 12 | field :issue_tracker_type, :type => String, :default => 'lighthouseapp' |
13 | 13 | |
14 | + def create_issue err | |
15 | + Lighthouse.account = account | |
16 | + Lighthouse.token = api_token | |
17 | + | |
18 | + ticket = Lighthouse::Ticket.new(:project_id => project_id) | |
19 | + ticket.title = "[#{ err.where }] #{err.message.to_s.truncate(27)}" | |
20 | + #ticket.body = err.backtrace.join("\n") | |
21 | + ticket.tags << "errbit" | |
22 | + ticket.save | |
23 | + end | |
24 | + | |
14 | 25 | protected |
15 | 26 | def check_lighthouseapp_params |
16 | 27 | blank_flags = %w( api_token project_id account ).map {|m| self[m].blank? } | ... | ... |
spec/factories.rb
spec/factories/app_factories.rb
... | ... | @@ -0,0 +1,7 @@ |
1 | +Factory.define :lighthouseapp_tracker, :class => IssueTracker do |e| | |
2 | + e.issue_tracker_type 'lighthouseapp' | |
3 | + e.account { Factory.next :word } | |
4 | + e.api_token { Factory.next :word } | |
5 | + e.project_id { Factory.next :word } | |
6 | + e.association :app, :factory => :app | |
7 | +end | |
0 | 8 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,17 @@ |
1 | +# encoding: utf-8 | |
2 | +require 'spec_helper' | |
3 | + | |
4 | +describe IssueTracker do | |
5 | + describe "#create_issue" do | |
6 | + context "lighthouseapp tracker" do | |
7 | + let(:tracker) { Factory :lighthouseapp_tracker } | |
8 | + let(:err) { Factory :err } | |
9 | + | |
10 | + it "should make request to Lighthouseapp with err params" do | |
11 | + stub_request(:post, "http://#{tracker.account}.lighthouseapp.com/projects/#{tracker.project_id}/tickets.xml") | |
12 | + tracker.create_issue err | |
13 | + WebMock.should have_requested(:post, "http://#{tracker.account}.lighthouseapp.com/projects/#{tracker.project_id}/tickets.xml") | |
14 | + end | |
15 | + end | |
16 | + end | |
17 | +end | ... | ... |
spec/spec_helper.rb
... | ... | @@ -4,6 +4,7 @@ ENV["RAILS_ENV"] ||= 'test' |
4 | 4 | require File.expand_path("../../config/environment", __FILE__) |
5 | 5 | require 'rspec/rails' |
6 | 6 | require 'database_cleaner' |
7 | +require 'webmock/rspec' | |
7 | 8 | |
8 | 9 | # Requires supporting files with custom matchers and macros, etc, |
9 | 10 | # in ./support/ and its subdirectories. |
... | ... | @@ -21,4 +22,5 @@ RSpec.configure do |config| |
21 | 22 | DatabaseCleaner[:mongoid].strategy = :truncation |
22 | 23 | DatabaseCleaner.clean |
23 | 24 | end |
25 | + config.include WebMock::API | |
24 | 26 | end |
25 | 27 | \ No newline at end of file | ... | ... |