developit / preact-jsx-chai

:white_check_mark: Add JSX assertions to Chai, with support for Preact Components.
http://npm.im/preact-jsx-chai
MIT License
56 stars 7 forks source link

Shallow rendering with context provider #56

Open jawadst opened 6 years ago

jawadst commented 6 years ago

I am using a provider component to add context to the components I am testing.

Example:

expect((
  <Provider store={store}>
    <Component />
  </Provider>
)).to.eql('');

In that case, I am required to do a non-shallow rendering/deep comparison with eql instead of equal. If I don't (and use equal), the rendered HTML that I get is <Component /> (which is to be expected).

That being said, what I am looking for here is doing a shallow rendering "two levels deep" where <Component /> gets rendered but not its children.

Is there any way to do that currently with preact-jsx-chai? Is there another way to provide the context without losing the ability to do shallow rendering?

developit commented 6 years ago

Hmm - not sure if there's a way to do that via preact-jsx-chai, though the underlying preact-render-to-string/jsx library has an option { renderRootComponent: true } that does exactly what you described..