import { describe, test, expect } from 'vitest'; import { render } from '@testing-library/svelte'; import Icon, { addIcon, addCollection } from '../../offline'; const iconData = { body: '', width: 24, height: 24, }; describe('Using storage', () => { test('using storage', () => { addIcon('test-icon', iconData); const component = render(Icon, { icon: 'test-icon' }); const node = component.container.querySelector('svg')!; const html = (node.parentNode as HTMLDivElement).innerHTML; expect(html.replace(//gm, '')).toBe( '' ); }); test('using storage with icon set', () => { const iconSet = { prefix: 'mdi-light', icons: { account: { body: '', }, home: { body: '', }, }, width: 24, height: 24, }; addCollection(iconSet); const component = render(Icon, { icon: 'mdi-light:account' }); const node = component.container.querySelector('svg')!; const html = (node.parentNode as HTMLDivElement).innerHTML; expect(html.replace(//gm, '')).toBe( '' ); }); test('using storage with icon set with custom prefix', () => { const iconSet = { prefix: 'mdi-light', icons: { 'account-alert': { body: '', }, 'link': { body: '', }, }, width: 24, height: 24, }; addCollection(iconSet, 'custom-'); const component = render(Icon, { icon: 'custom-link' }); const node = component.container.querySelector('svg')!; const html = (node.parentNode as HTMLDivElement).innerHTML; expect(html.replace(//gm, '')).toBe( '' ); }); test('missing icon from storage', () => { const component = render(Icon, { icon: 'missing-icon', }); const html = component.container.innerHTML; // Empty container div expect(html.replace(//gm, '')).toBe(''); }); });