88 lines
2.5 KiB
TypeScript
88 lines
2.5 KiB
TypeScript
import { GithubError } from "../src/GithubError"
|
|
|
|
describe('GithubError', () => {
|
|
it('generates missing resource error message', () => {
|
|
const resource = "release"
|
|
const error = {
|
|
code: "missing",
|
|
resource: resource
|
|
}
|
|
|
|
const githubError = new GithubError(error)
|
|
const message = githubError.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 githubError = new GithubError(error)
|
|
const message = githubError.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 githubError = new GithubError(error)
|
|
const message = githubError.toString()
|
|
|
|
expect(message).toBe(`The ${field} field on ${resource} is an invalid format.`)
|
|
})
|
|
|
|
it('generates resource already exists error message', () => {
|
|
const resource = "release"
|
|
const field = "body"
|
|
const error = {
|
|
code: "already_exists",
|
|
resource: resource
|
|
}
|
|
|
|
const githubError = new GithubError(error)
|
|
const message = githubError.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 githubError = new GithubError(error)
|
|
const message = githubError.toString()
|
|
|
|
expect(message).toBe(`foo\nPlease see ${url}.`)
|
|
})
|
|
|
|
it('without documentation url', () => {
|
|
const error = {
|
|
code: "custom",
|
|
message: "foo"
|
|
}
|
|
|
|
const githubError = new GithubError(error)
|
|
const message = githubError.toString()
|
|
|
|
expect(message).toBe('foo')
|
|
})
|
|
})
|
|
}) |