2
0
mirror of https://github.com/iconify/iconify.git synced 2024-10-23 17:12:03 +00:00
iconify/packages/core/tests/30-api/10-modules-test.ts

80 lines
2.0 KiB
TypeScript
Raw Normal View History

2020-04-28 09:47:35 +00:00
/* eslint-disable @typescript-eslint/no-unused-vars-experimental */
/* eslint-disable @typescript-eslint/no-unused-vars */
import 'mocha';
import { expect } from 'chai';
2020-12-25 19:03:15 +00:00
import type { PendingQueryItem } from '@cyberalien/redundancy';
import type { IconifyAPIConfig } from '../../lib/api/config';
import { setAPIConfig, getAPIConfig } from '../../lib/api/config';
import type {
APIIconsQueryParams,
APIQueryParams,
IconifyAPIModule,
} from '../../lib/api/modules';
2020-12-25 19:03:15 +00:00
import { setAPIModule, getAPIModule } from '../../lib/api/modules';
2020-04-28 09:47:35 +00:00
describe('Testing API modules', () => {
let prefixCounter = 0;
function nextPrefix(): string {
prefixCounter++;
return (
'api-mod-test-' + (prefixCounter < 10 ? '0' : '') + prefixCounter
);
}
const prepareQuery = (
provider: string,
2020-04-28 09:47:35 +00:00
prefix: string,
icons: string[]
): APIIconsQueryParams[] => {
const item: APIIconsQueryParams = {
type: 'icons',
provider,
2020-04-28 09:47:35 +00:00
prefix,
icons,
};
return [item];
};
const sendQuery = (
host: string,
params: APIQueryParams,
item: PendingQueryItem
2020-04-28 09:47:35 +00:00
): void => {
throw new Error('Unexpected API call');
};
it('Empty module', () => {
const provider = nextPrefix();
2020-04-28 09:47:35 +00:00
// Set config
setAPIConfig(provider, {
resources: ['https://localhost:3000'],
maxURL: 500,
});
2020-04-28 09:47:35 +00:00
// Set fake module
setAPIModule(provider, {
prepare: prepareQuery,
send: sendQuery,
});
2020-04-28 09:47:35 +00:00
// Get config
const config = getAPIConfig(provider) as IconifyAPIConfig;
expect(config).to.not.be.equal(void 0);
2020-04-28 09:47:35 +00:00
// Check setAPIConfig
expect(config.resources).to.be.eql(['https://localhost:3000']);
// Check getAPIModule()
const item = getAPIModule(provider) as IconifyAPIModule;
expect(item).to.not.be.equal(void 0);
2020-04-28 09:47:35 +00:00
expect(item.prepare).to.be.equal(prepareQuery);
expect(item.send).to.be.equal(sendQuery);
// Get module for different provider to make sure it is empty
const provider2 = nextPrefix();
const item2 = getAPIModule(provider2);
expect(item2).to.be.equal(void 0);
2020-04-28 09:47:35 +00:00
});
});