<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Unable to create unit tests for components that contain a Jimu-ui &amp;lt;Checkbox&amp;gt; in Developers Questions</title>
    <link>https://community.esri.com/t5/developers-questions/unable-to-create-unit-tests-for-components-that/m-p/1501718#M7103</link>
    <description>&lt;P&gt;I found the solution to this. Turns out the Jimu-ui component is likely dependent on the Theme provider or the Intl provider. The testing library provides a way to generate a render() that will pass the context and seems to do the trick:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { React } from 'jimu-core';
import { withStoreThemeIntlRender } from 'jimu-for-test';
import { MockResizeObserver } from '../../../testing/mocks';

const render = withStoreThemeIntlRender()

describe('Sortable List', () =&amp;gt; {
    MockResizeObserver();
    it('renders checkbox', async () =&amp;gt; {
        const component = render(&amp;lt;MyComponent /&amp;gt;)
        expect(component.getByRole("checkbox")).toBeTruthy();
    })
})&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 04 Jul 2024 21:53:58 GMT</pubDate>
    <dc:creator>AlejandroMari1</dc:creator>
    <dc:date>2024-07-04T21:53:58Z</dc:date>
    <item>
      <title>Unable to create unit tests for components that contain a Jimu-ui &lt;Checkbox&gt;</title>
      <link>https://community.esri.com/t5/developers-questions/unable-to-create-unit-tests-for-components-that/m-p/1501652#M7102</link>
      <description>&lt;P&gt;Hello, I'm having problems with the&amp;nbsp;'jimu-for-test' library when my components contains a &amp;lt;Checkbox&amp;gt; imported from the Jimu-ui library.&lt;/P&gt;&lt;P&gt;This is my component:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;export class MyComponent extends React.PureComponent&amp;lt;{  }, {  }&amp;gt;  {
    render() {
        return (&amp;lt;div&amp;gt;
            &amp;lt;Checkbox checked={true} onChange={() =&amp;gt; { }} /&amp;gt;
        &amp;lt;/div&amp;gt;)
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And this is the unit test:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { React } from 'jimu-core';
import { render } from 'jimu-for-test';
import { MockResizeObserver } from '../../../testing/mocks';

describe('Sortable List', () =&amp;gt; {
    MockResizeObserver();
    it('renders checkbox', async () =&amp;gt; {
        const component = render(&amp;lt;MyComponent /&amp;gt;)
        expect(component.getByRole("checkbox")).toBeTruthy();
    })
})&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However this fails on line 8, when it tries to render the component:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;C:\...\client&amp;gt;npm run sampletest

&amp;gt; exb-client@1.14.0 sampletest
&amp;gt; jest --runInBand sampletest.test

ts-jest[ts-jest-transformer] (WARN) Define `ts-jest` config under `globals` is deprecated. Please do
transform: {
    &amp;lt;transform_regex&amp;gt;: ['ts-jest', { /* ts-jest config goes here in Jest */ }],
},
 FAIL  sample.test.tsx
  ● Sortable List › renders checkbox

    TypeError: Cannot read properties of undefined (reading 'checkbox')

      1382 |       box-shadow: 0 0 0 1px ${a.focusColor};
      1383 |     } */
    &amp;gt; 1384 |     &amp;amp;.disabled {
           |                                     ^
      1385 |       &amp;amp;,
      1386 |       &amp;amp;.checked, &amp;amp;.indeterminate {
      1387 |         background: ${r.disabled.bg};

      at eo (dist/jimu-ui/index.js:1384:111)
      at dist/jimu-theme/index.js:46:85554
      at qP (dist/jimu-core/index.js:46:744751)
      at eD (dist/jimu-core/index.js:46:745060)
      at dist/jimu-core/index.js:147:51225
      at dist/jimu-core/index.js:46:746094
      at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
      at updateForwardRef (node_modules/react-dom/cjs/react-dom.development.js:19226:20)
      at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21636:16)
      at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
      at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
      at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
      at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
      at recoverFromConcurrentError (node_modules/react-dom/cjs/react-dom.development.js:25850:20)
      at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25750:22)
      at flushActQueue (node_modules/react/cjs/react.development.js:2667:24)
      at act (node_modules/react/cjs/react.development.js:2582:11)
      at node_modules/@testing-library/react/dist/act-compat.js:46:25
      at renderRoot (node_modules/@testing-library/react/dist/pure.js:161:26)
      at render (node_modules/@testing-library/react/dist/pure.js:247:10)
      at render (jimu-for-test/lib/test-utils.tsx:19:17)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts? I'm quite lost.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Alejandro&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jul 2024 18:54:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/unable-to-create-unit-tests-for-components-that/m-p/1501652#M7102</guid>
      <dc:creator>AlejandroMari1</dc:creator>
      <dc:date>2024-07-04T18:54:49Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to create unit tests for components that contain a Jimu-ui &lt;Checkbox&gt;</title>
      <link>https://community.esri.com/t5/developers-questions/unable-to-create-unit-tests-for-components-that/m-p/1501718#M7103</link>
      <description>&lt;P&gt;I found the solution to this. Turns out the Jimu-ui component is likely dependent on the Theme provider or the Intl provider. The testing library provides a way to generate a render() that will pass the context and seems to do the trick:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { React } from 'jimu-core';
import { withStoreThemeIntlRender } from 'jimu-for-test';
import { MockResizeObserver } from '../../../testing/mocks';

const render = withStoreThemeIntlRender()

describe('Sortable List', () =&amp;gt; {
    MockResizeObserver();
    it('renders checkbox', async () =&amp;gt; {
        const component = render(&amp;lt;MyComponent /&amp;gt;)
        expect(component.getByRole("checkbox")).toBeTruthy();
    })
})&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jul 2024 21:53:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/unable-to-create-unit-tests-for-components-that/m-p/1501718#M7103</guid>
      <dc:creator>AlejandroMari1</dc:creator>
      <dc:date>2024-07-04T21:53:58Z</dc:date>
    </item>
  </channel>
</rss>

