tips-twisted
Version:
Fetching riot games api data
50 lines (43 loc) • 1.49 kB
text/typescript
import * as httpStatusCode from 'http-status-codes'
import { ThirdPartyCode } from '../../../src/apis/lol/thirdPartyCode/thirdPartyCode'
import { Regions } from '../../../src/constants'
describe('Third Party code', () => {
const request = jest.fn()
const testId = 'id'
const testRegion = Regions.AMERICA_NORTH
beforeEach(() => {
(ThirdPartyCode.prototype as any).request = request
})
afterEach(() => {
request.mockClear()
})
it('should return valid code', async () => {
const code = 'ORIGENGG'
request.mockImplementation(() => ({ response: code }))
const api = new ThirdPartyCode()
const data = await api.get(testId, testRegion)
expect(data.response.code).toEqual(code)
})
it('should return null when an error is 500', async () => {
// Mock error 500
request.mockImplementation(() => {
const error: any = new Error()
error.statusCode = httpStatusCode.INTERNAL_SERVER_ERROR
throw error
})
const api = new ThirdPartyCode()
const data = await api.get(testId, testRegion)
expect(data.response.code).toEqual(null)
})
it('should return null when an error is 404', async () => {
// Mock error 404
request.mockImplementation(() => {
const error: any = new Error()
error.statusCode = httpStatusCode.NOT_FOUND
throw error
})
const api = new ThirdPartyCode()
const data = await api.get(testId, testRegion)
expect(data.response.code).toEqual(null)
})
})