From 49b18783baf5c9b8622c41056031a31832f8951c Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Tue, 23 Jun 2020 17:52:50 +0800 Subject: [PATCH] fix toast tests --- resources/assets/src/scripts/toast.tsx | 13 +++++-------- .../tests/scripts/{toast.test.tsx => toast.test.ts} | 12 ++++-------- 2 files changed, 9 insertions(+), 16 deletions(-) rename resources/assets/tests/scripts/{toast.test.tsx => toast.test.ts} (79%) diff --git a/resources/assets/src/scripts/toast.tsx b/resources/assets/src/scripts/toast.tsx index 48127641..2826807c 100644 --- a/resources/assets/src/scripts/toast.tsx +++ b/resources/assets/src/scripts/toast.tsx @@ -38,7 +38,6 @@ export const ToastContainer: React.FC = () => { return ( <> - {queue.length} {queue.map((el, i) => ( { export class Toast { private container: HTMLDivElement - constructor() { + constructor(render?: (element: JSX.Element) => void) { this.container = document.createElement('div') document.body.appendChild(this.container) - /* istanbul ignore next */ - if (process.env.NODE_ENV !== 'test') { + if (render) { + render() + } else { ReactDOM.render(, this.container) } } @@ -87,10 +87,7 @@ export class Toast { } dispose() { - /* istanbul ignore next */ - if (process.env.NODE_ENV !== 'test') { - ReactDOM.unmountComponentAtNode(this.container) - } + ReactDOM.unmountComponentAtNode(this.container) this.container.remove() } } diff --git a/resources/assets/tests/scripts/toast.test.tsx b/resources/assets/tests/scripts/toast.test.ts similarity index 79% rename from resources/assets/tests/scripts/toast.test.tsx rename to resources/assets/tests/scripts/toast.test.ts index 8fe28703..e278fc7d 100644 --- a/resources/assets/tests/scripts/toast.test.tsx +++ b/resources/assets/tests/scripts/toast.test.ts @@ -1,10 +1,8 @@ -import React from 'react' import { render, fireEvent, screen } from '@testing-library/react' -import { Toast, ToastContainer } from '@/scripts/toast' +import { Toast } from '@/scripts/toast' test('"Toast" class', () => { - render() - const toast = new Toast() + const toast = new Toast(render) toast.success('success') expect(document.querySelector('.alert-success')!.textContent).toContain( @@ -29,8 +27,7 @@ test('"Toast" class', () => { }) test('clear toasts', () => { - render() - const toast = new Toast() + const toast = new Toast(render) toast.success('success') toast.info('info') @@ -42,8 +39,7 @@ test('clear toasts', () => { }) test('close toast manually', () => { - render() - const toast = new Toast() + const toast = new Toast(render) toast.success('success') fireEvent.click(screen.getByText('×'))