mirror of
https://github.com/iconify/iconify.git
synced 2024-10-23 17:12:03 +00:00
86 lines
1.8 KiB
TypeScript
86 lines
1.8 KiB
TypeScript
|
/* eslint-disable @typescript-eslint/no-unused-vars-experimental */
|
||
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||
|
import 'mocha';
|
||
|
import { expect } from 'chai';
|
||
|
import { RedundancyPendingItem } from '@cyberalien/redundancy';
|
||
|
import {
|
||
|
setAPIConfig,
|
||
|
getAPIConfig,
|
||
|
IconifyAPIConfig,
|
||
|
} from '../../lib/api/config';
|
||
|
import {
|
||
|
setAPIModule,
|
||
|
APIQueryParams,
|
||
|
getAPIModule,
|
||
|
IconifyAPIModule,
|
||
|
} from '../../lib/api/modules';
|
||
|
|
||
|
describe('Testing API modules', () => {
|
||
|
let prefixCounter = 0;
|
||
|
function nextPrefix(): string {
|
||
|
prefixCounter++;
|
||
|
return (
|
||
|
'api-mod-test-' + (prefixCounter < 10 ? '0' : '') + prefixCounter
|
||
|
);
|
||
|
}
|
||
|
|
||
|
const prepareQuery = (
|
||
|
prefix: string,
|
||
|
icons: string[]
|
||
|
): APIQueryParams[] => {
|
||
|
const item: APIQueryParams = {
|
||
|
prefix,
|
||
|
icons,
|
||
|
};
|
||
|
return [item];
|
||
|
};
|
||
|
|
||
|
const sendQuery = (
|
||
|
host: string,
|
||
|
params: APIQueryParams,
|
||
|
status: RedundancyPendingItem
|
||
|
): void => {
|
||
|
throw new Error('Unexpected API call');
|
||
|
};
|
||
|
|
||
|
it('Empty module', () => {
|
||
|
const prefix = nextPrefix();
|
||
|
|
||
|
// Set config
|
||
|
setAPIConfig(
|
||
|
{
|
||
|
resources: ['https://localhost:3000'],
|
||
|
maxURL: 500,
|
||
|
},
|
||
|
prefix
|
||
|
);
|
||
|
|
||
|
// Set fake module
|
||
|
setAPIModule(
|
||
|
{
|
||
|
prepare: prepareQuery,
|
||
|
send: sendQuery,
|
||
|
},
|
||
|
prefix
|
||
|
);
|
||
|
|
||
|
// Get config
|
||
|
const config = getAPIConfig(prefix) as IconifyAPIConfig;
|
||
|
expect(config).to.not.be.equal(null);
|
||
|
|
||
|
// Check setAPIConfig
|
||
|
expect(config.resources).to.be.eql(['https://localhost:3000']);
|
||
|
|
||
|
// Check getAPIModule()
|
||
|
const item = getAPIModule(prefix) as IconifyAPIModule;
|
||
|
expect(item).to.not.be.equal(null);
|
||
|
expect(item.prepare).to.be.equal(prepareQuery);
|
||
|
expect(item.send).to.be.equal(sendQuery);
|
||
|
|
||
|
// Get module for different prefix to make sure it is empty
|
||
|
const prefix2 = nextPrefix();
|
||
|
const item2 = getAPIModule(prefix2);
|
||
|
expect(item2).to.be.equal(null);
|
||
|
});
|
||
|
});
|