/**
 * @jest-environment jsdom
 */
import { render } from '@testing-library/svelte';

// Test importing from exports
import Icon from '../../offline';

const iconData = {
	body: '<path d="M4 19h16v2H4zm5-4h11v2H9zm-5-4h16v2H4zm0-8h16v2H4zm5 4h11v2H9z" fill="currentColor"/>',
	width: 24,
	height: 24,
};

describe('Creating component', () => {
	test('basic icon', () => {
		const component = render(Icon, { icon: iconData });
		const node = component.container.querySelector('svg')!;
		const html = (node.parentNode as HTMLDivElement).innerHTML;

		// Check HTML
		expect(html).toBe(
			'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M4 19h16v2H4zm5-4h11v2H9zm-5-4h16v2H4zm0-8h16v2H4zm5 4h11v2H9z" fill="currentColor"></path></svg>'
		);

		// Make sure getAttribute() works, used in other tests
		expect(node.getAttribute('xmlns')).toBe('http://www.w3.org/2000/svg');
		expect(node.getAttribute('aria-hidden')).toBe('true');

		// Make sure style exists
		const style = node.style;
		expect(typeof style).toBe('object');
	});
});