2
0
mirror of https://github.com/iconify/iconify.git synced 2024-09-19 16:59:02 +00:00
iconify/plugins/tailwind/tests/clean-css-test.ts
Vjacheslav Trushkin 2841b3ff05 feat(tailwind): new version with dynamic icons
BREAKING CHANGE: plugin uses named exports now, see README.md for usage
2023-01-12 20:02:54 +02:00

69 lines
1.5 KiB
TypeScript

import { getCSSRulesForIcons } from '../src/clean';
describe('Testing clean CSS rules', () => {
it('One icon', () => {
const data = getCSSRulesForIcons('mdi-light:home');
expect(Object.keys(data)).toEqual([
'.icon--mdi-light',
'.icon--mdi-light--home',
]);
expect(Object.keys(data['.icon--mdi-light--home'])).toEqual(['--svg']);
});
it('Multiple icons from same icon set', () => {
const data = getCSSRulesForIcons([
// By name
'mdi-light:home',
// By selector
'.icon--mdi-light--arrow-left',
'.icon--mdi-light.icon--mdi-light--arrow-down',
// By class name
'icon--mdi-light--file',
'icon--mdi-light icon--mdi-light--format-clear',
]);
expect(Object.keys(data)).toEqual([
'.icon--mdi-light',
'.icon--mdi-light--home',
'.icon--mdi-light--arrow-left',
'.icon--mdi-light--arrow-down',
'.icon--mdi-light--file',
'.icon--mdi-light--format-clear',
]);
});
it('Multiple icon sets', () => {
const data = getCSSRulesForIcons([
// MDI Light
'mdi-light:home',
// Line MD
'line-md:home',
]);
expect(Object.keys(data)).toEqual([
'.icon--mdi-light',
'.icon--mdi-light--home',
'.icon--line-md',
'.icon--line-md--home',
]);
});
it('Bad class name', () => {
let threw = false;
try {
getCSSRulesForIcons(['icon--mdi-light--home test']);
} catch {
threw = true;
}
expect(threw).toBe(true);
});
it('Bad icon set', () => {
let threw = false;
try {
getCSSRulesForIcons('test123:home');
} catch {
threw = true;
}
expect(threw).toBe(true);
});
});