import { getSvgId, getSvgStyle, svgStyleCleanup } from './utils'; const ID = 'TEST_ID'; const svgNoId = ''; const svgWithId = ``; const svgWithWrongIdInStyle = ''; describe('SanitizedSVG', () => { it('should cleanup the style and generate an ID', () => { const cleanStyle = svgStyleCleanup(svgNoId); const updatedStyle = getSvgStyle(cleanStyle); const svgId = getSvgId(cleanStyle); expect(cleanStyle.indexOf('id="')).toBeGreaterThan(-1); expect(svgId).toBeDefined(); expect(svgId?.startsWith('x')).toBeTruthy(); expect(updatedStyle?.indexOf(`#${svgId}`)).toBeGreaterThan(-1); expect(cleanStyle).toEqual( `` ); }); it('should cleanup the style and use the existing ID', () => { const cleanStyle = svgStyleCleanup(svgWithId); const updatedStyle = getSvgStyle(cleanStyle); const svgId = getSvgId(cleanStyle); expect(cleanStyle.indexOf('id="')).toBeGreaterThan(-1); expect(svgId).toBeDefined(); expect(svgId).toEqual(ID); expect(updatedStyle?.indexOf(`#${svgId}`)).toBeGreaterThan(-1); expect(cleanStyle).toEqual( `` ); }); it('should cleanup the style and replace the wrong ID', () => { const cleanStyle = svgStyleCleanup(svgWithWrongIdInStyle); const updatedStyle = getSvgStyle(cleanStyle); const svgId = getSvgId(cleanStyle); expect(cleanStyle.indexOf('id="')).toBeGreaterThan(-1); expect(svgId).toBeDefined(); expect(svgId?.startsWith('x')).toBeTruthy(); expect(updatedStyle?.indexOf(`#${svgId}`)).toBeGreaterThan(-1); expect(cleanStyle).toEqual( `` ); }); });