FEMEN
Test your React components in browser without pain.
- Install
npm i femen -g
- 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()
})
})
- Run tests in debug mode with Chromium gui:
femen debug
- Run tests in CI in headless chromium mode:
femen ci
- Specify test for debug:
femen debug <filenames-substr>