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, }); }); });