Skip to content

Commit

Permalink
fix snapshot rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
robinweser committed May 4, 2022
1 parent 041bbfd commit bfd1bc7
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 30 deletions.
13 changes: 4 additions & 9 deletions packages/jest-fela-bindings/src/createSnapshotFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function formatHTML(html) {

export default function createSnapshotFactory(
createElement,
render,
renderToMarkup,
defaultRenderer,
defaultRendererProvider,
defaultThemeProvider
Expand All @@ -30,22 +30,17 @@ export default function createSnapshotFactory(
RendererProvider = defaultRendererProvider,
ThemeProvider = defaultThemeProvider
) {
const div = document.createElement('div')

// reset renderer to have a clean setup
renderer.clear()

render(
const markup = renderToMarkup(
createElement(
RendererProvider,
{ renderer },
createElement(ThemeProvider, { theme }, component)
),
div
)
)

return `${formatCSS(renderToString(renderer))}\n\n${formatHTML(
div.innerHTML
)}`
return `${formatCSS(renderToString(renderer))}\n\n${formatHTML(markup)}`
}
}
10 changes: 9 additions & 1 deletion packages/jest-inferno-fela/src/createSnapshot.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,17 @@ import { RendererProvider, ThemeProvider } from 'inferno-fela'

import { createSnapshotFactory } from 'jest-fela-bindings'

function renderToMarkup(component) {
const div = document.createElement('div')

render(component, div)

return div.innerHTML
}

export default createSnapshotFactory(
createElement,
render,
renderToMarkup,
createRenderer(),
RendererProvider,
ThemeProvider
Expand Down
10 changes: 9 additions & 1 deletion packages/jest-preact-fela/src/createSnapshot.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,17 @@ import { RendererProvider, ThemeProvider } from 'preact-fela'

import { createSnapshotFactory } from 'jest-fela-bindings'

function renderToMarkup(component) {
const div = document.createElement('div')

render(component, div)

return div.innerHTML
}

export default createSnapshotFactory(
createElement,
render,
renderToMarkup,
createRenderer(),
RendererProvider,
ThemeProvider
Expand Down
22 changes: 3 additions & 19 deletions packages/jest-react-fela/src/createSnapshot.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,12 @@
import { createElement } from 'react'
import { render } from 'react-dom'
import { renderToStaticMarkup } from 'react-dom/server'
import { createRenderer } from 'fela'
import { RendererProvider, ThemeProvider } from 'react-fela'

import { createSnapshotFactory } from 'jest-fela-bindings'

let createRoot
try {
const ReactDOMClient = require('react-dom/client')
if (
typeof ReactDOMClient !== 'undefined' &&
typeof ReactDOMClient.createRoot !== 'undefined'
) {
createRoot = ReactDOMClient.createRoot
}
} catch (e) {}

function renderComponent(component, node) {
if (createRoot) {
const root = createRoot(node)
root.render(component)
} else {
render(component, node)
}
function renderToMarkup(component) {
return renderToStaticMarkup(component)
}

export default createSnapshotFactory(
Expand Down

1 comment on commit bfd1bc7

@vercel
Copy link

@vercel vercel bot commented on bfd1bc7 May 4, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.