Skip to content

A small utility for Jest for converting SVG files into react components for testing.

License

Notifications You must be signed in to change notification settings

ChromeQ/svg-jest

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

svg-jest

npm GitHub issues

This is a small library which transforms .SVG files for jest. It produces and SVG in the stream.

The transformed item will have the following properties on it.

  • data-jest-file-name: The name of the file (e.g. 'some-image.svg')
  • data-jest-svg-name: Only the name portion of the file (e.g. 'some-image')
  • data-testid: Same as data-jest-svg-name, but works with @testing-library/react getByTestId()

Works with both of these formats:

import MySvg from '../images/an-image.svg';

import { ReactComponent as MySvg}  from '../images/an-image.svg';

The following JavaScript

const MyComponent = () => {
  return (
    <div>
	<MySvg/>
    </div>
  );
}

The resulting snapshot:

<div>
    <AnImage/>
</div>

The resulting HTML:

<div>
 <svg 
	data-jest-file-name='an-image.svg' 
	data-jest-svg-name='an-image' 
	data-testid='an-image'/>
</div>

In additoin, any properties passed to '' are passed along into both the snapshot and the resulting trees.

Usage

Configuring Jest, the example below uses package.json, but you can see: https://jestjs.io/docs/en/configuration for other examples.

{
    "jest": {
        "transform": {
            "\\.svg$": "svg-jest"
        }
    }
}

About

A small utility for Jest for converting SVG files into react components for testing.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%