@zennomi/mangadex-full-api
Version:
A MangaDex api based around the official API.
40 lines (33 loc) • 1.25 kB
text/typescript
import { List, Manga, User, resolveArray } from '../src/index';
import APIResponseError from '../src/util/APIResponseError';
import { ensureLogin } from './testutil';
beforeAll(async () => {
await ensureLogin();
});
test('getLoggedInUserLists() and getLoggedInUserLists()', async () => {
const lists = await List.getLoggedInUserLists();
expect(lists.length).toBeGreaterThan(0);
for (const list of lists) {
expect(list).toBeInstanceOf(List);
expect(list).toEqual(await List.get(list.id));
}
});
test('getLoggedInUserLists() with manga and user resolution', async () => {
const lists = await List.getLoggedInUserLists();
expect(lists.length).toBeGreaterThan(0);
lists.sort((a, b) => b.manga.length - a.manga.length);
const list = lists[0];
const manga = await resolveArray(list.manga);
manga.forEach((m) => expect(m).toBeInstanceOf(Manga));
const owner = await list.creator.resolve();
expect(owner).toBeInstanceOf(User);
});
test('Intentionally fail get()', async () => {
try {
await List.get('apple');
fail('get() should throw an error');
} catch (e) {
expect(e).toBeDefined();
expect(e).toBeInstanceOf(APIResponseError);
}
});