As discussed in this answer, I have written code for checking a unique key violation:
if err, ok := err.(*pq.Error); ok {
if err.Code.Name() == "unique_violation" {
fail(w, http.StatusBadRequest, 0, "Item already exists")
return
}
}
For writing unit-testcases, I need to mock this error. I have written the mock for the error like this:
return pq.Error{Code: "unique_violation"}
But this does not matches with the code. How do I mock the pq.Error
?
As noted in the Godoc, ErrorCode is a five-character error code.
err.Code.Name()
gets the human-friendly version of the error, but the error itself should be represented, and thus constructed, by the error code, which in this case is 23505.