UNPKG

mobx-wouter

Version:

<img src="assets/logo.png" align="right" height="156" alt="logo" />

58 lines (57 loc) 2.26 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { act, render, screen } from '@testing-library/react'; import { describe, expect, test } from 'vitest'; import { createCounter } from 'yummies/complex/counter'; import { PageViewModelBaseMock } from '../page-view-model/page-view-model.base.test.js'; import { withPageViewModel, } from './with-page-view-model.js'; const createIdGenerator = (prefix) => { const counter = createCounter(); return () => (prefix ?? '') + counter().toString(); }; describe('withPageViewModel', () => { test('renders (required path param)', async () => { class VM extends PageViewModelBaseMock { mount() { super.mount(); } } const View = ({ model }) => { return _jsx("div", { "data-testid": 'view', children: `hello ${model.id}` }); }; const Component = withPageViewModel(VM, { generateId: createIdGenerator(), })(View); await act(async () => render(_jsx(Component, { params: { foo: 'bar' } }))); expect(screen.getByText('hello VM_0')).toBeDefined(); }); test('renders (optional path param)', async () => { class VM extends PageViewModelBaseMock { mount() { super.mount(); } } const View = ({ model }) => { return _jsx("div", { "data-testid": 'view', children: `hello ${model.id}` }); }; const Component = withPageViewModel(VM, { generateId: createIdGenerator(), })(View); await act(async () => render(_jsx(Component, {}))); expect(screen.getByText('hello VM_0')).toBeDefined(); }); test('renders (no path params)', async () => { class VM extends PageViewModelBaseMock { mount() { super.mount(); } } const View = ({ model }) => { return _jsx("div", { "data-testid": 'view', children: `hello ${model.id}` }); }; const Component = withPageViewModel(VM, { generateId: createIdGenerator(), })(View); await act(async () => render(_jsx(Component, {}))); expect(screen.getByText('hello VM_0')).toBeDefined(); }); });