UNPKG

svgicons2svgfont

Version:

Read a set of SVG icons and output a SVG font

99 lines (88 loc) 2.74 kB
import { describe, test, expect } from '@jest/globals'; import { readFile, mkdir } from 'node:fs/promises'; import { join } from 'node:path'; import { exec } from 'node:child_process'; import { promisify } from 'node:util'; try { await mkdir(join('fixtures', 'results')); } catch (err) { // empty } describe('Testing CLI', () => { test('should work for simple SVG', async () => { const command = `${'node' + ' '}${join('bin', 'svgicons2svgfont.js')} -o ${join( 'fixtures', 'results', 'originalicons-cli.svg', )} -s 0xE001` + ` ${join('fixtures', 'icons', 'originalicons', '*.svg')}`; await promisify(exec)(command); expect( await readFile(join('fixtures', 'results', 'originalicons-cli.svg'), { encoding: 'utf8', }), ).toEqual( await readFile(join('fixtures', 'expected', 'originalicons-cli.svg'), { encoding: 'utf8', }), ); }); test('should work for more than 32 SVG icons', async () => { const command = 'node' + ' ' + join('bin', 'svgicons2svgfont.js') + ' -o ' + join('fixtures', 'results', 'lotoficons-cli.svg') + ' -s 0xE001' + ' -r 1e4' + ' ' + join('fixtures', 'icons', 'cleanicons', '*.svg') + ' ' + join('fixtures', 'icons', 'hiddenpathesicons', '*.svg') + ' ' + join('fixtures', 'icons', 'multipathicons', 'kikoolol.svg') + ' ' + join('fixtures', 'icons', 'originalicons', '*.svg') + ' ' + join('fixtures', 'icons', 'realicons', '*.svg') + ' ' + join('fixtures', 'icons', 'roundedcorners', '*.svg') + ' ' + join('fixtures', 'icons', 'shapeicons', '*.svg') + ' ' + join('fixtures', 'icons', 'tocentericons', '*.svg'); await promisify(exec)(command); expect( await readFile(join('fixtures', 'results', 'lotoficons-cli.svg'), { encoding: 'utf8', }), ).toEqual( await readFile(join('fixtures', 'expected', 'lotoficons-cli.svg'), { encoding: 'utf8', }), ); }); describe('with nested icons', () => { test('should work', async () => { const command = `${'node' + ' '}${join( 'bin', 'svgicons2svgfont.js', )} -o ${join( 'fixtures', 'results', 'nestedicons-cli.svg', )} ${join('fixtures', 'icons', 'nestedicons', '*.svg')}`; await promisify(exec)(command); expect( await readFile(join('fixtures', 'results', 'nestedicons-cli.svg'), { encoding: 'utf8', }), ).toEqual( await readFile(join('fixtures', 'expected', 'nestedicons-cli.svg'), { encoding: 'utf8', }), ); }); }); });