From fd9c10d6797363eef532066a9834a2d0be3bb24c Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Wed, 15 Apr 2020 12:20:25 -0400 Subject: [PATCH 1/3] Fix render() in standalone build (fixes #159) --- src/integrations/preact/standalone.mjs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/integrations/preact/standalone.mjs b/src/integrations/preact/standalone.mjs index f2604da..09a66b6 100644 --- a/src/integrations/preact/standalone.mjs +++ b/src/integrations/preact/standalone.mjs @@ -11,14 +11,10 @@ * limitations under the License. */ -import { h, Component, createContext, render as preactRender } from 'preact'; +import { h, Component, createContext, render } from 'preact'; import { useState, useReducer, useEffect, useLayoutEffect, useRef, useImperativeHandle, useMemo, useCallback, useContext, useDebugValue } from 'preact/hooks'; import htm from '../../index.mjs'; -function render(tree, parent) { - preactRender(tree, parent, parent.firstElementChild); -} - const html = htm.bind(h); export { h, html, render, Component, createContext, useState, useReducer, useEffect, useLayoutEffect, useRef, useImperativeHandle, useMemo, useCallback, useContext, useDebugValue }; From 5df6718d93088454d04b7a0074d61b6d56dcd640 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Wed, 15 Apr 2020 12:33:41 -0400 Subject: [PATCH 2/3] fix jest lint issue --- test/preact.test.mjs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/preact.test.mjs b/test/preact.test.mjs index 0582e2e..14392c8 100644 --- a/test/preact.test.mjs +++ b/test/preact.test.mjs @@ -61,8 +61,12 @@ describe('htm/preact', () => { document.querySelector('button').click(); document.querySelector('button').click(); setTimeout(() => { - expect(scratch.innerHTML).toBe(fullHtml.replace('jason', 'tom').replace(/\b0\b/g, '2')); - done(); + try { + expect(scratch.innerHTML).toBe(fullHtml.replace('jason', 'tom').replace(/\b0\b/g, '2')); + } + finally { + done(); + } }); }); From b6b4d53b573b9fe7280d92bbb0ee13063cfdbd57 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Wed, 15 Apr 2020 12:36:23 -0400 Subject: [PATCH 3/3] actually fix jest lint issue --- test/preact.test.mjs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/test/preact.test.mjs b/test/preact.test.mjs index 14392c8..3a3e7f3 100644 --- a/test/preact.test.mjs +++ b/test/preact.test.mjs @@ -13,6 +13,8 @@ import { html, Component, render } from 'htm/preact'; +const sleep = ms => new Promise(r => setTimeout(r, ms)); + describe('htm/preact', () => { const scratch = document.createElement('div'); document.body.appendChild(scratch); @@ -57,17 +59,11 @@ describe('htm/preact', () => { expect(scratch.innerHTML).toBe(fullHtml.replace('jason', 'tom')); }); - test('state update re-renders', done => { + test('state update re-renders', async () => { document.querySelector('button').click(); document.querySelector('button').click(); - setTimeout(() => { - try { - expect(scratch.innerHTML).toBe(fullHtml.replace('jason', 'tom').replace(/\b0\b/g, '2')); - } - finally { - done(); - } - }); + await sleep(1); + expect(scratch.innerHTML).toBe(fullHtml.replace('jason', 'tom').replace(/\b0\b/g, '2')); }); test('preserves case', () => {