GitXplorerGitXplorer
k

identity-obj-proxy

public
501 stars
18 forks
11 issues

Commits

List of commits on branch master.
Verified
06716fbb8f4fb1cab0b66d7d9b474bed628a4766

Merge pull request #11 from ayan4m1/patch-1

kkeyz committed 6 years ago
Verified
bb888be6fccc0c91ec4f141b5b53d178e092d86d

Fix broken link in README.md

aayan4m1 committed 6 years ago
Unverified
62bf795a4d38c63ea7f56d6f15bd52e21f8fe535

Update README.md

kkeyz committed 8 years ago
Unverified
4a4461f921802c76835b957776600f705d1e3351

3.0.0

committed 8 years ago
Unverified
e3632ac9a2c5d7dfefb8d15883b79f7e936a4c74

bumped Jest and fixed test path

committed 8 years ago
Unverified
f69879b8c5a6e32eb904d74e34b940344ea4e46d

edge case: the `__esModule` field gets read

committed 8 years ago

README

The README file for this repository.

identity-obj-proxy Build Status npm version test coverage

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

Real world example Wait what does that even mean

tl;dr

For a React component like

import React, { Component } from 'react';

import styles from './App.css'; // CSS Modules here

export default class App extends Component {
  render() {
    return (
      <div className={styles.root}>
        <h1 className={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.

Requirement

No flag is required for Node.js v6.*; use node --harmony_proxies flag for v5.* and v4.*.

Example

import idObj from 'identity-obj-proxy';
console.log(idObj.foo); // 'foo'
console.log(idObj.bar); // 'bar'
console.log(idObj[1]); // '1'