diff --git a/error.go b/error.go index 2b4cdcc..7b72894 100644 --- a/error.go +++ b/error.go @@ -5,7 +5,6 @@ import ( "encoding/json" "fmt" "io/ioutil" - "net/http" "github.com/pkg/errors" ) @@ -19,7 +18,7 @@ type Error struct { } // NewJiraError creates a new jira Error -func NewJiraError(resp *http.Response, httpError error) error { +func NewJiraError(resp *Response, httpError error) error { defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { diff --git a/error_test.go b/error_test.go index 7d2fe1c..993feb1 100644 --- a/error_test.go +++ b/error_test.go @@ -2,27 +2,31 @@ package jira import ( "errors" - "io" + "fmt" "net/http" - "net/http/httptest" "strings" "testing" ) func TestError_NewJiraError(t *testing.T) { - handler := func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, `{"errorMessages":["Issue does not exist or you do not have permission to see it."],"errors":{}}`) - } + setup() + defer teardown() - req := httptest.NewRequest("GET", "http://example.com/foo", nil) - w := httptest.NewRecorder() - handler(w, req) - resp := w.Result() + testMux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + fmt.Fprint(w, `{"errorMessages":["Issue does not exist or you do not have permission to see it."],"errors":{}}`) + }) + + req, _ := testClient.NewRequest("GET", "/", nil) + resp, _ := testClient.Do(req, nil) err := NewJiraError(resp, errors.New("Original http error")) if err, ok := err.(*Error); !ok { t.Errorf("Expected jira Error. Got %s", err.Error()) } + + if !strings.Contains(err.Error(), "Issue does not exist") { + t.Errorf("Expected issue message. Got: %s", err.Error()) + } } func TestError_NilOriginalMessage(t *testing.T) { diff --git a/issue.go b/issue.go index 6372e4a..7266437 100644 --- a/issue.go +++ b/issue.go @@ -363,7 +363,7 @@ func (s *IssueService) Get(issueID string) (*Issue, *Response, error) { issue := new(Issue) resp, err := s.client.Do(req, issue) if err != nil { - jerr := NewJiraError(resp.Response, err) + jerr := NewJiraError(resp, err) return nil, resp, jerr }