import React from 'react';
import { Icon, InlineIcon } from '../../dist/offline';
import { describe, test, expect } from 'vitest';
import { render } from '@testing-library/react';
const iconData = {
body: '',
width: 24,
height: 24,
};
describe('Passing attributes', () => {
test('title', () => {
// @ts-expect-error
const renderResult = render();
expect(renderResult.container.innerHTML).toContain('title="Icon!"');
});
test('aria-hidden', () => {
// dashes, string value
const renderResult = render(
);
expect(renderResult.container.innerHTML).not.toContain('aria-hidden');
});
test('ariaHidden', () => {
// camelCase, boolean value
const renderResult = render(
// @ts-expect-error
);
expect(renderResult.container.innerHTML).not.toContain('aria-hidden');
});
test('style', () => {
const renderResult = render(
);
expect(renderResult.container.innerHTML).toContain(
'style="vertical-align: 0; color: red;"'
);
});
test('color', () => {
const renderResult = render();
expect(renderResult.container.innerHTML).toContain(
'style="color: red;"'
);
});
test('color with style', () => {
const renderResult = render(
);
// In React component, `style` overrides `color`
expect(renderResult.container.innerHTML).toContain(
'style="color: green;"'
);
expect(renderResult.container.innerHTML).not.toContain('red');
});
test('attributes that cannot change', () => {
const renderResult = render(
);
expect(renderResult.container.innerHTML).toContain(
'viewBox="0 0 24 24"'
);
expect(renderResult.container.innerHTML).not.toContain('0 0 0 0');
});
});