require 'spec_helper' describe IssueTrackers::UnfuddleTracker do let(:issue_link) { "https://test.unfuddle.com/projects/15/tickets/2436" } let(:notice) { Fabricate :notice } let(:tracker) { Fabricate :unfuddle_issues_tracker, :app => notice.app } let(:problem) { notice.problem } it "should create an issue on Unfuddle Issues with problem params, and set issue link for problem" do project_xml = < 1 false reporter 0 false 27932 true #{tracker.project_id} false test-project blue false text Field 1 false text Field 2 false text Field 3 test-project 2011-04-25T09:21:43Z 2013-03-08T08:03:02Z EOF ticket_xml =< 40 markdown 1268.7 0.0 2436 78 119 3 15 40 markdown reopened TEST-ticket. 2012-06-27T17:49:06Z 2013-03-07T16:04:05Z EOF stub_request(:get, "https://#{tracker.username}:#{tracker.password}@test.unfuddle.com/api/v1/projects/#{tracker.project_id}.xml"). to_return(:status => 200, :body => project_xml, :headers => {}) stub_request(:post, "https://#{tracker.username}:#{tracker.password}@test.unfuddle.com/api/v1/projects/#{tracker.project_id}/tickets.xml"). to_return(:status => 200, :body => ticket_xml, :headers => {}) problem.app.issue_tracker.create_issue(problem) problem.reload requested = have_requested(:post,"https://#{tracker.username}:#{tracker.password}@test.unfuddle.com/api/v1/projects/#{tracker.project_id}/tickets.xml" ) WebMock.should requested.with(:title => /[production][foo#bar] FooError: Too Much Bar/) WebMock.should requested.with(:content => /See this exception on Errbit/) problem.issue_link.should == issue_link problem.issue_type.should == IssueTrackers::UnfuddleTracker::Label end end