<?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: ExB 1.9 Unit Test Advice in ArcGIS Experience Builder Questions</title>
    <link>https://community.esri.com/t5/arcgis-experience-builder-questions/exb-1-9-unit-test-advice/m-p/1625597#M19409</link>
    <description>&lt;P&gt;Can you try the code snippet below?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;export&lt;/SPAN&gt; &lt;SPAN&gt;function&lt;/SPAN&gt; &lt;SPAN&gt;mockJSAPIClass&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;properties&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; { }) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;jest&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;fn&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;mockImplementation&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;constructorOptions&lt;/SPAN&gt; &lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; ({ &lt;/SPAN&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;SPAN&gt;properties&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;SPAN&gt;constructorOptions&lt;/SPAN&gt;&lt;SPAN&gt; }))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Mon, 23 Jun 2025 06:06:37 GMT</pubDate>
    <dc:creator>JunshanLiu</dc:creator>
    <dc:date>2025-06-23T06:06:37Z</dc:date>
    <item>
      <title>ExB 1.9 Unit Test Advice</title>
      <link>https://community.esri.com/t5/arcgis-experience-builder-questions/exb-1-9-unit-test-advice/m-p/1217192#M5411</link>
      <description>&lt;P&gt;I'm new to writing unit tests and try to get some inspirations from "show-unit-tests" from the SDK, but&amp;nbsp;"Query Features" is not working for me, and would like your input on both the syntax and conceptual design of the test.&lt;/P&gt;&lt;P&gt;I have created a custom map widget that access coordinates from another widget and draw a point (graphic in graphic layer) on the map.&lt;/P&gt;&lt;P&gt;The coordinates in the other widgets are passed in with code:&lt;/P&gt;&lt;DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;props&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;dispatch&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;appActions&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;widgetStatePropChange&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;props&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'X'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;props&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;dispatch&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;appActions&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;widgetStatePropChange&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;props&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'Y'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;The coordinates are also shown as text above the map in the format of:&lt;/P&gt;&lt;P&gt;"X: &amp;lt;value&amp;gt; Y: &amp;lt;value&amp;gt;"&lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;I am thinking for the unit test to be valuable, I should:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;1) test the access from&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;widgetsState&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mock 2 values and try to access them, then assert their values?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;2)&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;test the API:&lt;/SPAN&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;continue from #1, make a graphic in graphic layer, then ???&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { React, getAppStore, appActions } from 'jimu-core'
import _Widget from '../src/runtime/widget'
import { widgetRender, wrapWidget, getInitState, getDefaultAppConfig } from 'jimu-for-test'

const render = widgetRender()

jest.mock('jimu-core', () =&amp;gt; {
  return {
    ...jest.requireActual('jimu-core'),
    loadArcGISJSAPIModule: jest.fn().mockImplementation(moduleId =&amp;gt; {
      let module
      if (moduleId === 'esri/layers/GraphicLayer') {
        module = jest.fn().mockImplementation(() =&amp;gt; {
          return {
            //not sure what goes in here
          }
        })
      }
      return Promise.resolve(module)
    })
  }
})

describe('test map-view widget', () =&amp;gt; {
  it('test label, map from state', () =&amp;gt; {
    const Widget = wrapWidget(_Widget, { config: {} })

    getAppStore().dispatch(appActions.updateStoreState(getInitState().merge({
      appConfig: getDefaultAppConfig().merge({
        widgets: {
          w1: {
            label: 123 // not working
          }
        }
      })
    })))

    const renderResult = render(&amp;lt;Widget widgetId="w1" /&amp;gt;)
    expect(renderResult.queryByText('123')).toBeInTheDocument()
  })

  it('test api', async () =&amp;gt; {
    const { findByText } = render(&amp;lt;Widget widgetId="w2" /&amp;gt;)
    // Not sure what goes in here
  })
})&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2022 23:09:22 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-experience-builder-questions/exb-1-9-unit-test-advice/m-p/1217192#M5411</guid>
      <dc:creator>dreamfool</dc:creator>
      <dc:date>2022-09-28T23:09:22Z</dc:date>
    </item>
    <item>
      <title>Re: ExB 1.9 Unit Test Advice</title>
      <link>https://community.esri.com/t5/arcgis-experience-builder-questions/exb-1-9-unit-test-advice/m-p/1327173#M8262</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Did you ever find a resolution to this issue?&lt;BR /&gt;It would be really helpful learning.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kind Regards,&lt;/P&gt;&lt;P&gt;Morgan&lt;/P&gt;</description>
      <pubDate>Mon, 11 Sep 2023 08:46:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-experience-builder-questions/exb-1-9-unit-test-advice/m-p/1327173#M8262</guid>
      <dc:creator>MorganLancaster</dc:creator>
      <dc:date>2023-09-11T08:46:25Z</dc:date>
    </item>
    <item>
      <title>Re: ExB 1.9 Unit Test Advice</title>
      <link>https://community.esri.com/t5/arcgis-experience-builder-questions/exb-1-9-unit-test-advice/m-p/1625597#M19409</link>
      <description>&lt;P&gt;Can you try the code snippet below?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;export&lt;/SPAN&gt; &lt;SPAN&gt;function&lt;/SPAN&gt; &lt;SPAN&gt;mockJSAPIClass&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;properties&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; { }) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;jest&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;fn&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;mockImplementation&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;constructorOptions&lt;/SPAN&gt; &lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; ({ &lt;/SPAN&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;SPAN&gt;properties&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;SPAN&gt;constructorOptions&lt;/SPAN&gt;&lt;SPAN&gt; }))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 23 Jun 2025 06:06:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-experience-builder-questions/exb-1-9-unit-test-advice/m-p/1625597#M19409</guid>
      <dc:creator>JunshanLiu</dc:creator>
      <dc:date>2025-06-23T06:06:37Z</dc:date>
    </item>
  </channel>
</rss>

