Skip to content

Commit 2d4aae3

Browse files
Prettify r2wc package
1 parent deee985 commit 2d4aae3

1 file changed

Lines changed: 71 additions & 73 deletions

File tree

packages/react-to-web-component/src/react-to-web-component.test.tsx

Lines changed: 71 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import PropTypes from "prop-types"
44
import React from "react"
55
import { describe, it, expect, assert } from "vitest"
66

7-
import { R2WCElement } from '@r2wc/core'
7+
import { R2WCElement } from "@r2wc/core"
88

99
import r2wc from "./react-to-web-component"
1010

@@ -366,99 +366,97 @@ describe("react-to-web-component 1", () => {
366366
})
367367
})
368368

369-
it.each(
370-
[[undefined], ["open"], ["closed"]]
371-
)(
369+
it.each([[undefined], ["open"], ["closed"]])(
372370
`Supports class function to react props using method transform: (shadow: %s)`,
373371
async (shadow) => {
374-
const ClassGreeting: React.FC<{ name: string; sayHello: () => void }> = ({
375-
name,
376-
sayHello,
377-
}) => (
378-
<div>
379-
<h1>Hello, {name}</h1>
380-
<button onClick={sayHello}>Click me</button>
381-
</div>
382-
)
383-
384-
const WebClassGreeting = r2wc(ClassGreeting, {
385-
props: {
386-
name: "string",
387-
sayHello: "method",
388-
},
389-
shadow: shadow as unknown as Exclude<Parameters<typeof r2wc>[1], undefined>['shadow'],
390-
})
372+
const ClassGreeting: React.FC<{ name: string; sayHello: () => void }> = ({
373+
name,
374+
sayHello,
375+
}) => (
376+
<div>
377+
<h1>Hello, {name}</h1>
378+
<button onClick={sayHello}>Click me</button>
379+
</div>
380+
)
391381

392-
const tagName = `class-greeting${shadow ? `-${shadow}`: ''}`
382+
const WebClassGreeting = r2wc(ClassGreeting, {
383+
props: {
384+
name: "string",
385+
sayHello: "method",
386+
},
387+
shadow: shadow as unknown as Exclude<
388+
Parameters<typeof r2wc>[1],
389+
undefined
390+
>["shadow"],
391+
})
393392

394-
customElements.define(tagName, WebClassGreeting)
393+
const tagName = `class-greeting${shadow ? `-${shadow}` : ""}`
395394

396-
document.body.innerHTML = `<${tagName} name='Christopher'></class-greeting>`
395+
customElements.define(tagName, WebClassGreeting)
397396

398-
const el = document.querySelector<R2WCElement & { sayHello?: () => void }>(
399-
tagName,
400-
)
397+
document.body.innerHTML = `<${tagName} name='Christopher'></class-greeting>`
401398

402-
if (!el) {
403-
throw new Error("Element not found")
404-
}
399+
const el = document.querySelector<
400+
R2WCElement & { sayHello?: () => void }
401+
>(tagName)
405402

406-
const sayHello = function (this: R2WCElement) {
407-
const nameElement = this.container.querySelector("h1")
408-
if (nameElement) {
409-
nameElement.textContent = "Hello, again"
403+
if (!el) {
404+
throw new Error("Element not found")
410405
}
411-
}
412406

413-
el.sayHello = sayHello
407+
const sayHello = function (this: R2WCElement) {
408+
const nameElement = this.container.querySelector("h1")
409+
if (nameElement) {
410+
nameElement.textContent = "Hello, again"
411+
}
412+
}
414413

415-
const docRoot = el.container.getRootNode() as Document | DocumentFragment
414+
el.sayHello = sayHello
416415

417-
await new Promise((resolve, reject) => {
418-
const failIfNotClicked = setTimeout(() => {
419-
reject()
420-
}, 1000)
416+
const docRoot = el.container.getRootNode() as Document | DocumentFragment
421417

422-
setTimeout(() => {
423-
docRoot
424-
.querySelector<HTMLButtonElement>(`button`)
425-
?.click()
418+
await new Promise((resolve, reject) => {
419+
const failIfNotClicked = setTimeout(() => {
420+
reject()
421+
}, 1000)
426422

427423
setTimeout(() => {
428-
const element = docRoot.querySelector("h1")
429-
expect(element?.textContent).toEqual("Hello, again")
430-
clearTimeout(failIfNotClicked)
431-
resolve(true)
424+
docRoot.querySelector<HTMLButtonElement>(`button`)?.click()
425+
426+
setTimeout(() => {
427+
const element = docRoot.querySelector("h1")
428+
expect(element?.textContent).toEqual("Hello, again")
429+
clearTimeout(failIfNotClicked)
430+
resolve(true)
431+
}, 0)
432432
}, 0)
433-
}, 0)
434-
})
433+
})
435434

436-
const sayHelloRerendered = function (this: R2WCElement) {
437-
const nameElement = this.container.querySelector("h1")
438-
if (nameElement) {
439-
nameElement.textContent = "Hello, again rerendered"
435+
const sayHelloRerendered = function (this: R2WCElement) {
436+
const nameElement = this.container.querySelector("h1")
437+
if (nameElement) {
438+
nameElement.textContent = "Hello, again rerendered"
439+
}
440440
}
441-
}
442-
443-
el.sayHello = sayHelloRerendered
444441

445-
await new Promise((resolve, reject) => {
446-
const failIfNotClicked = setTimeout(() => {
447-
reject()
448-
}, 1000)
442+
el.sayHello = sayHelloRerendered
449443

450-
setTimeout(() => {
451-
docRoot
452-
.querySelector<HTMLButtonElement>(`button`)
453-
?.click()
444+
await new Promise((resolve, reject) => {
445+
const failIfNotClicked = setTimeout(() => {
446+
reject()
447+
}, 1000)
454448

455449
setTimeout(() => {
456-
const element = docRoot.querySelector<HTMLHeadingElement>("h1")
457-
expect(element?.textContent).toEqual("Hello, again rerendered")
458-
clearTimeout(failIfNotClicked)
459-
resolve(true)
450+
docRoot.querySelector<HTMLButtonElement>(`button`)?.click()
451+
452+
setTimeout(() => {
453+
const element = docRoot.querySelector<HTMLHeadingElement>("h1")
454+
expect(element?.textContent).toEqual("Hello, again rerendered")
455+
clearTimeout(failIfNotClicked)
456+
resolve(true)
457+
}, 0)
460458
}, 0)
461-
}, 0)
462-
})
463-
})
459+
})
460+
},
461+
)
464462
})

0 commit comments

Comments
 (0)