98 lines
2.6 KiB
TypeScript
98 lines
2.6 KiB
TypeScript
import { GithubErrorDetail } from "../src/GithubErrorDetail"
|
|
|
|
describe("GithubErrorDetail", () => {
|
|
it("provides error code", () => {
|
|
const error = {
|
|
code: "missing",
|
|
}
|
|
|
|
const detail = new GithubErrorDetail(error)
|
|
|
|
expect(detail.code).toBe("missing")
|
|
})
|
|
|
|
it("generates missing resource error message", () => {
|
|
const resource = "release"
|
|
const error = {
|
|
code: "missing",
|
|
resource: resource,
|
|
}
|
|
|
|
const detail = new GithubErrorDetail(error)
|
|
const message = detail.toString()
|
|
|
|
expect(message).toBe(`${resource} does not exist.`)
|
|
})
|
|
|
|
it("generates missing field error message", () => {
|
|
const resource = "release"
|
|
const field = "body"
|
|
const error = {
|
|
code: "missing_field",
|
|
field: field,
|
|
resource: resource,
|
|
}
|
|
|
|
const detail = new GithubErrorDetail(error)
|
|
const message = detail.toString()
|
|
|
|
expect(message).toBe(`The ${field} field on ${resource} is missing.`)
|
|
})
|
|
|
|
it("generates invalid field error message", () => {
|
|
const resource = "release"
|
|
const field = "body"
|
|
const error = {
|
|
code: "invalid",
|
|
field: field,
|
|
resource: resource,
|
|
}
|
|
|
|
const detail = new GithubErrorDetail(error)
|
|
const message = detail.toString()
|
|
|
|
expect(message).toBe(`The ${field} field on ${resource} is an invalid format.`)
|
|
})
|
|
|
|
it("generates resource already exists error message", () => {
|
|
const resource = "release"
|
|
const error = {
|
|
code: "already_exists",
|
|
resource: resource,
|
|
}
|
|
|
|
const detail = new GithubErrorDetail(error)
|
|
const message = detail.toString()
|
|
|
|
expect(message).toBe(`${resource} already exists.`)
|
|
})
|
|
|
|
describe("generates custom error message", () => {
|
|
it("with documentation url", () => {
|
|
const url = "https://api.example.com"
|
|
const error = {
|
|
code: "custom",
|
|
message: "foo",
|
|
documentation_url: url,
|
|
}
|
|
|
|
const detail = new GithubErrorDetail(error)
|
|
const message = detail.toString()
|
|
|
|
expect(message).toBe(`foo\nPlease see ${url}.`)
|
|
})
|
|
|
|
it("without documentation url", () => {
|
|
const error = {
|
|
code: "custom",
|
|
message: "foo",
|
|
}
|
|
|
|
const detail = new GithubErrorDetail(error)
|
|
const message = detail.toString()
|
|
|
|
expect(message).toBe("foo")
|
|
})
|
|
})
|
|
})
|