Test React Components in browser


Keywords
react, test, puppeteer, storybook, framework
License
ISC
Install
npm install femen@1.20.0

Documentation

FEMEN

Test your React components in browser without pain.

  1. Install
npm i femen -g
  1. Create a test file <project-root>/browser-tests/<tesname>.spec.js:
import React from 'react'
import { mountInBrowser } from 'femen'
import MyComponent from '../components/MyComponent'


// "mount" your component in browser page
const story1url = mountInBrowser('MyComponent', 'story1', <MyComponent {...props1} />)
const story2url = mountInBrowser('MyComponent', 'story2', <MyComponent {...props2} />)


// then write your test using url provided by `mountInBrowser`
describe('MyComponent', () => {
  it('should render with props1', async () => {
    await page.goto(story1url)
    expect(await page.$('#some .selector')).not.toBe(null)
  })

  it('should fails with props2', async () => {
    const errorListener = jest.fn()
    page.on('pageerror', errorListener)
    await page.goto(story2url)
    expect(errorListener).toHaveBeenCalled()
  })
})
  1. Run tests in debug mode with Chromium gui:
femen debug
  1. Run tests in CI in headless chromium mode:
femen ci
  1. Specify test for debug:
femen debug <filenames-substr>

todo

CLI options

Config file