An identity object using ES6 proxies. Useful for mocking webpack imports. For instance, you can tell Jest to mock this object as imported CSS modules; then all your className lookups on the imported styles object will be returned as-is.
npm install identity-obj-proxy
For a React component like
importReact,{Component}from'react';importstylesfrom'./App.css';// CSS Modules hereexportdefaultclassAppextendsComponent{render(){return(<divclassName={styles.root}><h1className={styles.hello}>Hello, world!</h1></div>);}}we can generate a snapshot as below (notice that the class names get correctly mocked):
exports[`test App renders correctly 1`]=`<div className="root"> <h1 className="hello"> Hello, world! </h1></div>`;For more information, please take a look at https://github.com/keyanzhang/jest-css-modules-example/ and https://jestjs.io/docs/en/webpack.html.
No flag is required for Node.js v6.*; use node --harmony_proxies flag for v5.* and v4.*.
importidObjfrom'identity-obj-proxy';console.log(idObj.foo);// 'foo'console.log(idObj.bar);// 'bar'console.log(idObj[1]);// '1'