FoundKey/packages/foundkey-js/test-d/api.ts

46 lines
1.5 KiB
TypeScript
Raw Normal View History

2021-05-16 09:18:45 +00:00
import { expectType } from 'tsd';
import * as foundkey from '../src';
2021-05-16 09:18:45 +00:00
describe('API', () => {
2021-05-31 14:03:08 +00:00
test('success', async () => {
const cli = new foundkey.api.APIClient({
origin: 'https://foundkey.test',
2021-05-31 14:03:08 +00:00
credential: 'TOKEN'
2021-05-16 09:27:21 +00:00
});
2021-05-31 14:03:08 +00:00
const res = await cli.request('meta', { detail: true });
expectType<foundkey.entities.DetailedInstanceMetadata>(res);
2021-05-16 09:27:21 +00:00
});
2021-06-19 15:43:29 +00:00
test('conditional respose type (meta)', async () => {
const cli = new foundkey.api.APIClient({
origin: 'https://foundkey.test',
2021-05-31 14:03:08 +00:00
credential: 'TOKEN'
2021-05-16 09:27:21 +00:00
});
2021-05-31 14:03:08 +00:00
const res = await cli.request('meta', { detail: true });
expectType<foundkey.entities.DetailedInstanceMetadata>(res);
2021-05-31 14:03:08 +00:00
const res2 = await cli.request('meta', { detail: false });
expectType<foundkey.entities.LiteInstanceMetadata>(res2);
2021-05-31 14:03:08 +00:00
const res3 = await cli.request('meta', { });
expectType<foundkey.entities.LiteInstanceMetadata>(res3);
2021-06-22 10:07:09 +00:00
const res4 = await cli.request('meta', { detail: true as boolean });
expectType<foundkey.entities.LiteInstanceMetadata | foundkey.entities.DetailedInstanceMetadata>(res4);
2021-05-16 09:18:45 +00:00
});
2021-06-19 15:43:29 +00:00
test('conditional respose type (users/show)', async () => {
const cli = new foundkey.api.APIClient({
origin: 'https://foundkey.test',
2021-06-19 15:43:29 +00:00
credential: 'TOKEN'
});
const res = await cli.request('users/show', { userId: 'xxxxxxxx' });
expectType<foundkey.entities.UserDetailed>(res);
2021-06-19 15:43:29 +00:00
const res2 = await cli.request('users/show', { userIds: ['xxxxxxxx'] });
expectType<foundkey.entities.UserDetailed[]>(res2);
2021-06-19 15:43:29 +00:00
});
2021-05-16 09:18:45 +00:00
});