Preact-ISO-маршруты рендеринг как `[объект объекта]` в видов/JsdomJavascript

Форум по Javascript
Ответить
Anonymous
 Preact-ISO-маршруты рендеринг как `[объект объекта]` в видов/Jsdom

Сообщение Anonymous »

проблема
При тестировании приложения Preact с использованием preact-iso для маршрутизации с видовым и JSDOM, компоненты, отображаемые как [объект объекта] в выходе отладки. Важно, что Console.log операторы, размещенные в этих маршрутизированных компонентах (или их прямых обертках), не стреляют, что указывает на то, что маршрутизатор не соответствует маршрутам или созданию создания компонентов.

Код: Выделить всё

main_app.tsx
):

Код: Выделить всё

import { h } from 'preact';
import { Router, Route } from 'preact-iso';
const LogComponent = (props: { id: string }) => {
console.log(`LogComponent ID: ${props.id}`); // This log doesn't fire
return {props.id};
};
const Page = (props: any) => ;
export const App = () => ;
< /code>
< /li>
[*] [b] тест (main_app.test.tsx
): [/b]

Код: Выделить всё

import { render, screen } from '@testing-library/preact';
import { MemoryRouter } from 'preact-iso/router'; // Initially tried MemoryRouter
import { App } from './main_app';

it('renders /test', () => {
render();
screen.debug(); // Shows [object Object]
expect(screen.getByTestId('routed')).toBeInTheDocument(); // Fails
});
initisting vitest.config.ts Попытки: Различные комбинации server.deps.inline , ssr.noexternal , явное Esbuild jsx -настрой />
Ожидаемое поведение
console.log Inside logComponent должен уволить, и Screen.debug () должен отображать рендерированный HTML (например, test-page ). Утверждение теста должно пройти. < /P>
фактическое поведение < /strong>

Код: Выделить всё

screen.debug()
показывает [объект объекта] . Console.log Inside LogComponent не стреляет. Утверждения испытаний не проходят.


Подробнее здесь: https://stackoverflow.com/questions/796 ... test-jsdom
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»