diff --git a/test/api.ts b/test/api.ts index 6a1720a28..3380f3b63 100644 --- a/test/api.ts +++ b/test/api.ts @@ -51,7 +51,7 @@ describe('API', () => { }); }); - test('error', async () => { + test('api error', async () => { fetchMock.resetMocks(); fetchMock.mockResponse(async (req) => { return { @@ -80,7 +80,40 @@ describe('API', () => { } }); - // TODO: ネットワークエラーのテスト + test('network error', async () => { + fetchMock.resetMocks(); + fetchMock.mockAbort(); - // TODO: JSON以外が返ってきた場合のハンドリング + try { + const cli = new APIClient({ + origin: 'https://misskey.test', + credential: 'TOKEN', + }); + + await cli.request('i'); + } catch (e) { + expect(isAPIError(e)).toEqual(false); + } + }); + + test('json parse error', async () => { + fetchMock.resetMocks(); + fetchMock.mockResponse(async (req) => { + return { + status: 500, + body: 'I AM NOT JSON' + }; + }); + + try { + const cli = new APIClient({ + origin: 'https://misskey.test', + credential: 'TOKEN', + }); + + await cli.request('i'); + } catch (e) { + expect(isAPIError(e)).toEqual(false); + } + }); });