import type { IconifyAliases } from '@iconify/types';
import { getIconsToRetrieve, getIconsData } from '../../lib/data/icon-set/utils/get-icons';
import { splitIconSetMainData } from '../../lib/data/icon-set/store/split';
import { loadFixture } from '../helpers';
describe('Getting icons data', () => {
test('Getting icon names to retrieve', async () => {
const iconSet = JSON.parse(await loadFixture('json/mdi.json'));
const data = splitIconSetMainData(iconSet);
// Icons without aliases
const aliases1 = {} as IconifyAliases;
expect(getIconsToRetrieve(data, ['account-multiple-minus', 'math-log'], aliases1)).toEqual(
new Set(['account-multiple-minus', 'math-log'])
);
expect(aliases1).toEqual({});
// Icons with aliases
const aliases2 = {} as IconifyAliases;
expect(getIconsToRetrieve(data, ['account-multiple-minus', '123', '1-2-3', '4k'], aliases2)).toEqual(
new Set(['account-multiple-minus', 'numeric', 'video-4k-box'])
);
expect(aliases2).toEqual({
'123': {
parent: 'numeric',
},
'1-2-3': {
parent: 'numeric',
},
'4k': {
parent: 'video-4k-box',
},
});
});
test('Getting icon data from one object', async () => {
const iconSet = JSON.parse(await loadFixture('json/mdi.json'));
const data = splitIconSetMainData(iconSet);
const icons = iconSet.icons;
expect(getIconsData(data, ['123', 'windsock'], [icons])).toEqual({
prefix: 'mdi',
icons: {
numeric: {
body: '',
},
windsock: {
body: '',
},
},
aliases: {
'123': {
parent: 'numeric',
},
},
width: 24,
height: 24,
lastModified: 1663305505,
});
});
});