fix:token icon #11
Jest tests failed
Failed tests: 16/958. Failed suites: 16/132.
Details
● AppsPage › Bookmarked Safe apps Page › shows Bookmarked safe apps section
expect(received).toBeInTheDocument()
received value must be an HTMLElement or an SVGElement.
Received has value: null
Ignored nodes: comments, script, style
<html>
<head />
<body
style=""
>
<div>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
/>
</main>
</div>
</body>
</html>...
162 | // show Bookmarked Safe Apps only
163 | await waitFor(() => {
> 164 | expect(screen.queryByText('Compound', { selector: 'h5' })).toBeInTheDocument()
| ^
165 | expect(screen.queryByText('Transaction Builder', { selector: 'h5' })).toBeInTheDocument()
166 | expect(screen.queryByText('ENS App', { selector: 'h5' })).not.toBeInTheDocument()
167 | expect(screen.queryByText('Synthetix', { selector: 'h5' })).not.toBeInTheDocument()
at __EXTERNAL_MATCHER_TRAP__ (node_modules/@jest/expect/node_modules/expect/build/index.js:325:30)
at Object.throwingMatcher [as toBeInTheDocument] (node_modules/@jest/expect/node_modules/expect/build/index.js:326:15)
at toBeInTheDocument (src/tests/pages/apps.test.tsx:164:68)
at runWithExpensiveErrorDiagnosticsDisabled (node_modules/@testing-library/dom/dist/config.js:52:12)
at checkCallback (node_modules/@testing-library/dom/dist/wait-for.js:141:77)
at checkRealTimersCallback (node_modules/@testing-library/dom/dist/wait-for.js:133:16)
at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
● AppsPage › Bookmarked Safe apps Page › unpin a Safe app
expect(received).toBeInTheDocument()
received value must be an HTMLElement or an SVGElement.
Received has value: null
Ignored nodes: comments, script, style
<html>
<head />
<body
style=""
>
<div>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
/>
</main>
</div>
</body>
</html>...
188 | // show Bookmarked Safe Apps only
189 | await waitFor(() => {
> 190 | expect(screen.queryByText('Compound', { selector: 'h5' })).toBeInTheDocument()
| ^
191 | expect(screen.queryByText('Transaction Builder', { selector: 'h5' })).toBeInTheDocument()
192 | })
193 |
at __EXTERNAL_MATCHER_TRAP__ (node_modules/@jest/expect/node_modules/expect/build/index.js:325:30)
at Object.throwingMatcher [as toBeInTheDocument] (node_modules/@jest/expect/node_modules/expect/build/index.js:326:15)
at toBeInTheDocument (src/tests/pages/apps.test.tsx:190:68)
at runWithExpensiveErrorDiagnosticsDisabled (node_modules/@testing-library/dom/dist/config.js:52:12)
at checkCallback (node_modules/@testing-library/dom/dist/wait-for.js:141:77)
at checkRealTimersCallback (node_modules/@testing-library/dom/dist/wait-for.js:133:16)
at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
● AppsPage › Bookmarked Safe apps Page › shows Safe app details when you click on the Safe app card
Unable to find role="heading" and name "Transaction Builder"
Ignored nodes: comments, script, style
<body
style=""
>
<div>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
/>
</main>
</div>
</body>
223 |
224 | // clicks on Transaction Builder Safe App
> 225 | await waitFor(() => {
| ^
226 | fireEvent.click(screen.getByRole('heading', { level: 5, name: 'Transaction Builder' }))
227 | })
228 |
at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:187:27)
at Object.<anonymous> (src/tests/pages/apps.test.tsx:225:20)
● AppsPage › Custom Safe apps Page › Requires risk acknowledgment checkbox to add the app
Unable to find an element with the text: /This Safe App is not part of Safe{Wallet} and I agree to use it at my own risk\./. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
Ignored nodes: comments, script, style
<body
style="padding-right: 1024px; overflow: hidden;"
>
<div
aria-hidden="true"
>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
>
<li>
<div
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiCard-root css-dg4yf5-MuiPaper-root-MuiCard-root"
>
<div
class="MuiBox-root css-u9nuc8"
>
<mock-icon
alt="Add Custom Safe App card"
/>
<button
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeSmall MuiButton-containedSizeSmall MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeSmall MuiButton-containedSizeSmall css-2hj4ux-MuiButtonBase-root-MuiButton-root"
tabindex="0"
type="button"
>
Add custom Safe App
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
</div>
</li>
</ul>
</main>
</div>
<div
class="MuiDialog-root dialog MuiModal-root css-zw3mfo-MuiModal-root-MuiDialog-root"
role="presentation"
>
<div
aria-hidden="true"
class="MuiBackdrop-root MuiModal-backdrop css-lmjli-MuiBackdrop-root-MuiDialog-backdrop"
style="opacity: 1; webkit-transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
/>
<div
data-testid="sentinelStart"
tabindex="0"
/>
<div
class="MuiDialog-container MuiDialog-scrollBody css-iz3z40-MuiDialog-container"
role="presentation"
style="opacity: 1; webkit-transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
tabindex="-1"
>
<div
aria-labelledby=":r25:"
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation24 MuiDialog-paper MuiDialog-paperScrollBody MuiDialog-paperWidthSm MuiDialog-paperFullWidth css-11holrt-MuiPaper-root-MuiDialog-paper"
role="dialog"
>
<h2
class="MuiTypography-root MuiTypography-h6 MuiDialogTitle-root css-1h653qr-MuiTypography-root-MuiDialogTitle-root"
id=":r25:"
>
Add custom Safe App
<span
style="flex: 1;"
/>
<span
class="MuiSkeleton-root MuiSkeleton-rectangular MuiSkeleton-pulse css-18ke8nf-MuiSkeleton-root"
style="width: 100%; height: 22px;"
/>
<button
aria-label="close"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-cjooj8-MuiButtonBase-root-MuiIconButton-root"
tabindex="0"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-17ceore-MuiSvgIcon-root"
data-testid="CloseIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</h2>
<form>
<div
class="MuiDialogContent-root addCustomAppContainer css-law44l-MuiDialogContent-root"
>
<div
class="addCustomAppFields"
>
<div
class="MuiFormControl-root MuiTextField-root css-1u3bzj6-MuiFormControl-root-MuiTextField-root"
>
<label
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined css-18pzvfc-MuiFormLabel-root-MuiInputLabel-root"
data-shrink="true"
for=":r26:"
id=":r26:-label"
>
Safe App URL
<span
aria-hidden="true"
class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-1odu3x2-MuiFormLabel-asterisk"
>
*
</span>
</label>
<div
class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl css-1sk2nkw-MuiInputBase-root-MuiOutlinedInput-root"
>
<input
aria-invalid="false"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input css-12t5onw-MuiInputBase-input-MuiOutlinedInput-input"
id=":r26:"
name="appUrl"
required=""
type="text"
value=""
/>
<fieldset
aria-hidden="true"
class="MuiOutlinedInput-notchedOutline css-p7vjcx-MuiOutlinedInput-notchedOutline"
>
<legend
class="css-14lo706"
>
<span>
Safe App URL
*
</span>
</legend>
</fieldset>
</div>
</div>
<div
class="MuiBox-root css-1yuhvjn"
>
<div
class="customAppContainer"
>
<iframe
height="48"
loading="lazy"
referrerpolicy="strict-origin"
sandbox="allow-scripts"
srcdoc="
<body style=\"margin: 0; overflow: hidden;\">
<img src=\"\" alt=\"Safe App logo\" width=\"48\" height=\"48\" />
<script>
document.querySelector('img').onerror = (e) => {
e.target.onerror = null
e.target.src = \"/images/apps/app-placeholder.svg\"
}
</script>
</body>
"
style="pointer-events: none; border: 0px;"
tabindex="-1"
title="Custom test Safe app"
width="48"
/>
<h2
class="MuiTypography-root MuiTypography-body1 css-azkxed-MuiTypography-root"
>
Custom test Safe app
</h2>
<p
class="MuiTypography-root MuiTypography-body2 css-1l5lzal-MuiTypography-root"
>
Custom Safe app description
</p>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-colorSuccess MuiSvgIcon-fontSizeMedium customAppCheckIcon css-1anwf6-MuiSvgIcon-root"
data-testid="CheckIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
/>
</svg>
</div>
<label
aria-required="true"
class="MuiFormControlLabel-root MuiFormControlLabel-labelPlacementEnd css-1kop2ac-MuiFormControlLabel-root"
>
<span
class="MuiButtonBase-root MuiCheckbox-root MuiCheckbox-colorPrimary PrivateSwitchBase-root MuiCheckbox-root MuiCheckbox-colorPrimary MuiCheckbox-root MuiCheckbox-colorPrimary css-dy157c-MuiButtonBase-root-MuiCheckbox-root"
>
<input
class="PrivateSwitchBase-input css-1m9pwf3"
data-indeterminate="false"
name="riskAcknowledgement"
type="checkbox"
/>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-17ceore-MuiSvgIcon-root"
data-testid="CheckBoxOutlineBlankIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</span>
<span
class="MuiTypography-root MuiTypography-body1 MuiFormControlLabel-label css-1pqjor9-MuiTypography-root"
>
This Safe App is not part of BNB Safe{Wallet} and I agree to use it at my own risk.
</span>
</label>
</div>
</div>
<div
class="addCustomAppHelp"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium addCustomAppHelpIcon css-17ceore-MuiSvgIcon-root"
data-testid="InfoOutlinedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
/>
</svg>
<p
class="MuiTypography-root MuiTypography-body1 css-t82eh9-MuiTypography-root"
>
Learn more about building
</p>
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways addCustomAppHelpLink css-181jh7p-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps/get-started"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
Safe Apps
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="OpenInNewRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h5c.55 0 1-.45 1-1s-.45-1-1-1H5c-1.11 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55-.45 1-1 1zM14 4c0 .55.45 1 1 1h2.59l-9.13 9.13c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L19 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1z"
/>
</svg>
</span>
</a>
.
</div>
</div>
<div
class="MuiDialogActions-root css-1xk6pnx-MuiDialogActions-root"
>
<button
class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium css-1hkfg6j-MuiButtonBase-root-MuiButton-root"
tabindex="0"
type="button"
>
Cancel
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
<button
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium Mui-disabled MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1lu37fw-MuiButtonBase-root-MuiButton-root"
disabled=""
tabindex="-1"
type="submit"
>
Add
</button>
</div>
</form>
</div>
</div>
<div
data-testid="sentinelEnd"
tabindex="0"
/>
</div>
</body>
399 | const appURLInput = screen.getByLabelText(/Safe App URL/)
400 | fireEvent.change(appURLInput, { target: { value: APP_URL } })
> 401 | const riskCheckbox = await screen.findByText(
| ^
402 | /This Safe App is not part of Safe{Wallet} and I agree to use it at my own risk\./,
403 | )
404 | await act(() => {
at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:187:27)
at node_modules/@testing-library/dom/dist/query-helpers.js:101:33
at Object.findByText (src/tests/pages/apps.test.tsx:401:41)
● useVisibleBalances › return only visible balance
expect(received).toEqual(expected) // deep equality
Expected: "60"
Received: "100"
93 | const { result } = renderHook(() => useVisibleBalances())
94 |
> 95 | expect(result.current.balances.fiatTotal).toEqual('60')
| ^
96 | expect(result.current.balances.items).toHaveLength(1)
97 | })
98 |
at Object.toEqual (src/hooks/__tests__/useVisibleBalances.test.ts:95:47)
● useVisibleBalances › computation works for high precision numbers
expect(received).toEqual(expected) // deep equality
Expected: "100.012345678901234567"
Received: "200.012345678901234567"
164 | const { result } = renderHook(() => useVisibleBalances())
165 |
> 166 | expect(result.current.balances.fiatTotal).toEqual('100.012345678901234567')
| ^
167 | expect(result.current.balances.items).toHaveLength(2)
168 | })
169 |
at Object.toEqual (src/hooks/__tests__/useVisibleBalances.test.ts:166:47)
● useVisibleBalances › computation works for high USD values
expect(received).toEqual(expected) // deep equality
Expected: "28303710905000000.0123456789"
Received: "28303710905000100.0123456789"
223 | const { result } = renderHook(() => useVisibleBalances())
224 |
> 225 | expect(result.current.balances.fiatTotal).toEqual('28303710905000000.0123456789')
| ^
226 | expect(result.current.balances.items).toHaveLength(1)
227 | })
228 | })
at Object.toEqual (src/hooks/__tests__/useVisibleBalances.test.ts:225:47)
● useChainId hook › should read location.pathname if useRouter query.safe is empty
expect(received).toEqual(expected) // deep equality
Expected: "43114"
Received: "1"
38 | const { result } = renderHook(() => useChainId())
39 |
> 40 | expect(result.current).toEqual('43114')
| ^
41 | })
42 |
43 | it('should read location.search if useRouter query.safe is empty', () => {
at Object.toEqual (src/hooks/__tests__/useChainId.test.ts:40:28)
● useChainId hook › should read location.search if useRouter query.safe is empty
expect(received).toEqual(expected) // deep equality
Expected: "43114"
Received: "1"
54 | const { result } = renderHook(() => useChainId())
55 |
> 56 | expect(result.current).toEqual('43114')
| ^
57 | })
58 |
59 | it('should read location.search if useRouter query.chain is empty', () => {
at Object.toEqual (src/hooks/__tests__/useChainId.test.ts:56:28)
● useChainId hook › should read location.search if useRouter query.chain is empty
expect(received).toEqual(expected) // deep equality
Expected: "137"
Received: "1"
70 | const { result } = renderHook(() => useChainId())
71 |
> 72 | expect(result.current).toEqual('137')
| ^
73 | })
74 |
75 | it('should return the default chainId if no query params', () => {
at Object.toEqual (src/hooks/__tests__/useChainId.test.ts:72:28)
● useChainId hook › should return the default chainId if no query params
expect(received).toBe(expected) // Object.is equality
Expected: "5"
Received: "1"
75 | it('should return the default chainId if no query params', () => {
76 | const { result } = renderHook(() => useChainId())
> 77 | expect(result.current).toBe('5')
| ^
78 | })
79 |
80 | it('should return the chainId based on the chain query', () => {
at Object.toBe (src/hooks/__tests__/useChainId.test.ts:77:28)
● useChainId hook › should return the chainId based on the chain query
expect(received).toBe(expected) // Object.is equality
Expected: "100"
Received: "1"
84 |
85 | const { result } = renderHook(() => useChainId())
> 86 | expect(result.current).toBe('100')
| ^
87 | })
88 |
89 | it('should return the chainId from the safe address', () => {
at Object.toBe (src/hooks/__tests__/useChainId.test.ts:86:28)
● useChainId hook › should return the chainId from the safe address
expect(received).toBe(expected) // Object.is equality
Expected: "137"
Received: "1"
93 |
94 | const { result } = renderHook(() => useChainId())
> 95 | expect(result.current).toBe('137')
| ^
96 | })
97 |
98 | it('should return the wallet chain id if no chain in the URL and it is present in the chain configs', () => {
at Object.toBe (src/hooks/__tests__/useChainId.test.ts:95:28)
● useChainId hook › should return the wallet chain id if no chain in the URL and it is present in the chain configs
expect(received).toBe(expected) // Object.is equality
Expected: "1337"
Received: "1"
111 |
112 | const { result } = renderHook(() => useChainId())
> 113 | expect(result.current).toBe('1337')
| ^
114 | })
115 |
116 | it('should return the last used chain id if no chain in the URL and the connect wallet chain id is not present in the chain configs', () => {
at Object.toBe (src/hooks/__tests__/useChainId.test.ts:113:28)
● useChainId hook › should return the last used chain id if no chain in the URL and the connect wallet chain id is not present in the chain configs
expect(received).toBe(expected) // Object.is equality
Expected: "5"
Received: "1"
129 |
130 | const { result } = renderHook(() => useChainId())
> 131 | expect(result.current).toBe('5')
| ^
132 | })
133 |
134 | it('should return the last used chain id if no wallet is connected and there is no chain in the URL', () => {
at Object.toBe (src/hooks/__tests__/useChainId.test.ts:131:28)
● useChainId hook › should return the last used chain id if no wallet is connected and there is no chain in the URL
expect(received).toBe(expected) // Object.is equality
Expected: "100"
Received: "1"
138 |
139 | const { result } = renderHook(() => useChainId())
> 140 | expect(result.current).toBe('100')
| ^
141 | })
142 | })
143 |
at Object.toBe (src/hooks/__tests__/useChainId.test.ts:140:28)
Annotations
Check failure on line 145 in src/tests/pages/apps.test.tsx
github-actions / jest-github-action
AppsPage > Bookmarked Safe apps Page > shows Bookmarked safe apps section
Error: expect(received).toBeInTheDocument()
received value must be an HTMLElement or an SVGElement.
Received has value: null
Ignored nodes: comments, script, style
<html>
<head />
<body
style=""
>
<div>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
/>
</main>
</div>
</body>
</html>...
at __EXTERNAL_MATCHER_TRAP__ (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@jest/expect/node_modules/expect/build/index.js:325:30)
at Object.throwingMatcher [as toBeInTheDocument] (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@jest/expect/node_modules/expect/build/index.js:326:15)
at toBeInTheDocument (/home/runner/work/safe-wallet-web/safe-wallet-web/src/tests/pages/apps.test.tsx:164:68)
at runWithExpensiveErrorDiagnosticsDisabled (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/config.js:52:12)
at checkCallback (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/wait-for.js:141:77)
at checkRealTimersCallback (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/wait-for.js:133:16)
at Timeout.task [as _onTimeout] (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
at listOnTimeout (node:internal/timers:569:17)
at processTimers (node:internal/timers:512:7)
Check failure on line 171 in src/tests/pages/apps.test.tsx
github-actions / jest-github-action
AppsPage > Bookmarked Safe apps Page > unpin a Safe app
Error: expect(received).toBeInTheDocument()
received value must be an HTMLElement or an SVGElement.
Received has value: null
Ignored nodes: comments, script, style
<html>
<head />
<body
style=""
>
<div>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
/>
</main>
</div>
</body>
</html>...
at __EXTERNAL_MATCHER_TRAP__ (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@jest/expect/node_modules/expect/build/index.js:325:30)
at Object.throwingMatcher [as toBeInTheDocument] (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@jest/expect/node_modules/expect/build/index.js:326:15)
at toBeInTheDocument (/home/runner/work/safe-wallet-web/safe-wallet-web/src/tests/pages/apps.test.tsx:190:68)
at runWithExpensiveErrorDiagnosticsDisabled (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/config.js:52:12)
at checkCallback (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/wait-for.js:141:77)
at checkRealTimersCallback (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/wait-for.js:133:16)
at Timeout.task [as _onTimeout] (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
at listOnTimeout (node:internal/timers:569:17)
at processTimers (node:internal/timers:512:7)
Check failure on line 204 in src/tests/pages/apps.test.tsx
github-actions / jest-github-action
AppsPage > Bookmarked Safe apps Page > shows Safe app details when you click on the Safe app card
Error: Unable to find role="heading" and name "Transaction Builder"
Ignored nodes: comments, script, style
<body
style=""
>
<div>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
/>
</main>
</div>
</body>
at waitForWrapper (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/wait-for.js:187:27)
at Object.<anonymous> (/home/runner/work/safe-wallet-web/safe-wallet-web/src/tests/pages/apps.test.tsx:225:20)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:538:9)
at processTimers (node:internal/timers:512:7)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 365 in src/tests/pages/apps.test.tsx
github-actions / jest-github-action
AppsPage > Custom Safe apps Page > Requires risk acknowledgment checkbox to add the app
Error: Unable to find an element with the text: /This Safe App is not part of Safe{Wallet} and I agree to use it at my own risk\./. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
Ignored nodes: comments, script, style
<body
style="padding-right: 1024px; overflow: hidden;"
>
<div
aria-hidden="true"
>
<div
class="container"
tabindex="0"
>
<mock-icon />
<h6
class="MuiTypography-root MuiTypography-h6 title css-dh47xt-MuiTypography-root"
>
How to build on
<i>
Safe
</i>
?
</h6>
<a
class="MuiTypography-root MuiTypography-body2 MuiLink-root MuiLink-underlineAlways link css-p35e85-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
<span>
Learn more about Safe Apps SDK
</span>
</span>
</a>
<button
class="MuiButtonBase-root MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary MuiFab-root MuiFab-extended MuiFab-sizeSmall MuiFab-secondary openButton css-6a6htw-MuiButtonBase-root-MuiFab-root"
tabindex="-1"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="KeyboardDoubleArrowUpRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M6.7 18.29c.39.39 1.02.39 1.41 0L12 14.42l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 12.3a.9959.9959 0 0 0-1.41 0L6.7 16.88c-.39.39-.39 1.02 0 1.41z"
/>
<path
d="M6.7 11.7c.39.39 1.02.39 1.41 0L12 7.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 5.71a.9959.9959 0 0 0-1.41 0L6.7 10.29c-.39.39-.39 1.02 0 1.41z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
<div
class="container MuiBox-root css-0"
>
<h3
class="MuiTypography-root MuiTypography-h3 title css-aklxrh-MuiTypography-root"
>
Explore the Safe Apps ecosystem
</h3>
<p
class="MuiTypography-root MuiTypography-body1 subtitle css-1pqjor9-MuiTypography-root"
>
Connect to your favourite web3 applications with your Safe Account, securely and efficiently.
</p>
</div>
<div
class="tabs MuiBox-root css-0"
>
<div
class="MuiTabs-root tabs css-tkn350-MuiTabs-root"
>
<div
class="MuiTabs-scrollableX MuiTabs-hideScrollbar css-agdkjh-MuiTabs-scrollbarSize"
style="width: 99px; height: 99px; position: absolute; top: -9999px; overflow: scroll;"
/>
<div
class="MuiTabs-scroller MuiTabs-hideScrollbar MuiTabs-scrollableX css-69z67c-MuiTabs-scroller"
style="margin-bottom: 0px;"
>
<div
class="MuiTabs-flexContainer css-heg063-MuiTabs-flexContainer"
role="tablist"
>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
All apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="false"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/bookmarked?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="-1"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-fvh28f-MuiTypography-root"
>
Bookmarked apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
<a
aria-selected="true"
class="MuiButtonBase-root MuiTab-root MuiTab-textColorPrimary Mui-selected tab css-1lj962s-MuiButtonBase-root-MuiTab-root"
href="/apps/custom?safe=matic%3A0x0000000000000000000000000000000000000000"
role="tab"
tabindex="0"
>
<p
class="MuiTypography-root MuiTypography-body2 label css-11hvqlg-MuiTypography-root"
>
My custom apps
</p>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</a>
</div>
<span
class="MuiTabs-indicator css-1n74ku9-MuiTabs-indicator"
style="left: 0px; width: 0px;"
/>
</div>
</div>
</div>
<main>
<div
class="MuiStack-root css-ar0lna-MuiStack-root"
>
<p
class="MuiTypography-root MuiTypography-body2 css-1hd2n80-MuiTypography-root"
>
ALL (
0
)
</p>
<div
class="MuiFormControl-root css-1nrlq1o-MuiFormControl-root"
>
<div
aria-label="safe apps view mode selector"
class="MuiFormGroup-root css-tp8o0d-MuiFormGroup-root"
role="radiogroup"
>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault Mui-checked MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="Grid view mode"
checked=""
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="grid-view"
/>
<mock-icon
fontsize="medium"
/>
</span>
<span
class="MuiButtonBase-root MuiRadio-root MuiRadio-colorDefault PrivateSwitchBase-root MuiRadio-root MuiRadio-colorDefault MuiRadio-root MuiRadio-colorDefault css-1u1u1h-MuiButtonBase-root-MuiRadio-root"
>
<input
aria-label="List view mode"
class="PrivateSwitchBase-input css-1m9pwf3"
name="safe-apps-view-mode"
type="radio"
value="list-view"
/>
<mock-icon
classname="listView"
fontsize="medium"
/>
</span>
</div>
</div>
</div>
<ul
class="safeAppsContainer safeAppsGridViewContainer"
>
<li>
<div
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiCard-root css-dg4yf5-MuiPaper-root-MuiCard-root"
>
<div
class="MuiBox-root css-u9nuc8"
>
<mock-icon
alt="Add Custom Safe App card"
/>
<button
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeSmall MuiButton-containedSizeSmall MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeSmall MuiButton-containedSizeSmall css-2hj4ux-MuiButtonBase-root-MuiButton-root"
tabindex="0"
type="button"
>
Add custom Safe App
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</div>
</div>
</li>
</ul>
</main>
</div>
<div
class="MuiDialog-root dialog MuiModal-root css-zw3mfo-MuiModal-root-MuiDialog-root"
role="presentation"
>
<div
aria-hidden="true"
class="MuiBackdrop-root MuiModal-backdrop css-lmjli-MuiBackdrop-root-MuiDialog-backdrop"
style="opacity: 1; webkit-transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
/>
<div
data-testid="sentinelStart"
tabindex="0"
/>
<div
class="MuiDialog-container MuiDialog-scrollBody css-iz3z40-MuiDialog-container"
role="presentation"
style="opacity: 1; webkit-transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
tabindex="-1"
>
<div
aria-labelledby=":r25:"
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation24 MuiDialog-paper MuiDialog-paperScrollBody MuiDialog-paperWidthSm MuiDialog-paperFullWidth css-11holrt-MuiPaper-root-MuiDialog-paper"
role="dialog"
>
<h2
class="MuiTypography-root MuiTypography-h6 MuiDialogTitle-root css-1h653qr-MuiTypography-root-MuiDialogTitle-root"
id=":r25:"
>
Add custom Safe App
<span
style="flex: 1;"
/>
<span
class="MuiSkeleton-root MuiSkeleton-rectangular MuiSkeleton-pulse css-18ke8nf-MuiSkeleton-root"
style="width: 100%; height: 22px;"
/>
<button
aria-label="close"
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-cjooj8-MuiButtonBase-root-MuiIconButton-root"
tabindex="0"
type="button"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-17ceore-MuiSvgIcon-root"
data-testid="CloseIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
</h2>
<form>
<div
class="MuiDialogContent-root addCustomAppContainer css-law44l-MuiDialogContent-root"
>
<div
class="addCustomAppFields"
>
<div
class="MuiFormControl-root MuiTextField-root css-1u3bzj6-MuiFormControl-root-MuiTextField-root"
>
<label
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined css-18pzvfc-MuiFormLabel-root-MuiInputLabel-root"
data-shrink="true"
for=":r26:"
id=":r26:-label"
>
Safe App URL
<span
aria-hidden="true"
class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-1odu3x2-MuiFormLabel-asterisk"
>
*
</span>
</label>
<div
class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl css-1sk2nkw-MuiInputBase-root-MuiOutlinedInput-root"
>
<input
aria-invalid="false"
autocomplete="off"
class="MuiInputBase-input MuiOutlinedInput-input css-12t5onw-MuiInputBase-input-MuiOutlinedInput-input"
id=":r26:"
name="appUrl"
required=""
type="text"
value=""
/>
<fieldset
aria-hidden="true"
class="MuiOutlinedInput-notchedOutline css-p7vjcx-MuiOutlinedInput-notchedOutline"
>
<legend
class="css-14lo706"
>
<span>
Safe App URL
*
</span>
</legend>
</fieldset>
</div>
</div>
<div
class="MuiBox-root css-1yuhvjn"
>
<div
class="customAppContainer"
>
<iframe
height="48"
loading="lazy"
referrerpolicy="strict-origin"
sandbox="allow-scripts"
srcdoc="
<body style=\"margin: 0; overflow: hidden;\">
<img src=\"\" alt=\"Safe App logo\" width=\"48\" height=\"48\" />
<script>
document.querySelector('img').onerror = (e) => {
e.target.onerror = null
e.target.src = \"/images/apps/app-placeholder.svg\"
}
</script>
</body>
"
style="pointer-events: none; border: 0px;"
tabindex="-1"
title="Custom test Safe app"
width="48"
/>
<h2
class="MuiTypography-root MuiTypography-body1 css-azkxed-MuiTypography-root"
>
Custom test Safe app
</h2>
<p
class="MuiTypography-root MuiTypography-body2 css-1l5lzal-MuiTypography-root"
>
Custom Safe app description
</p>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-colorSuccess MuiSvgIcon-fontSizeMedium customAppCheckIcon css-1anwf6-MuiSvgIcon-root"
data-testid="CheckIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
/>
</svg>
</div>
<label
aria-required="true"
class="MuiFormControlLabel-root MuiFormControlLabel-labelPlacementEnd css-1kop2ac-MuiFormControlLabel-root"
>
<span
class="MuiButtonBase-root MuiCheckbox-root MuiCheckbox-colorPrimary PrivateSwitchBase-root MuiCheckbox-root MuiCheckbox-colorPrimary MuiCheckbox-root MuiCheckbox-colorPrimary css-dy157c-MuiButtonBase-root-MuiCheckbox-root"
>
<input
class="PrivateSwitchBase-input css-1m9pwf3"
data-indeterminate="false"
name="riskAcknowledgement"
type="checkbox"
/>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-17ceore-MuiSvgIcon-root"
data-testid="CheckBoxOutlineBlankIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"
/>
</svg>
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</span>
<span
class="MuiTypography-root MuiTypography-body1 MuiFormControlLabel-label css-1pqjor9-MuiTypography-root"
>
This Safe App is not part of BNB Safe{Wallet} and I agree to use it at my own risk.
</span>
</label>
</div>
</div>
<div
class="addCustomAppHelp"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium addCustomAppHelpIcon css-17ceore-MuiSvgIcon-root"
data-testid="InfoOutlinedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
/>
</svg>
<p
class="MuiTypography-root MuiTypography-body1 css-t82eh9-MuiTypography-root"
>
Learn more about building
</p>
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways addCustomAppHelpLink css-181jh7p-MuiTypography-root-MuiLink-root"
href="https://docs.safe.global/safe-core-aa-sdk/safe-apps/get-started"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
Safe Apps
<svg
aria-hidden="true"
class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-11dtfly-MuiSvgIcon-root"
data-testid="OpenInNewRoundedIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h5c.55 0 1-.45 1-1s-.45-1-1-1H5c-1.11 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55-.45 1-1 1zM14 4c0 .55.45 1 1 1h2.59l-9.13 9.13c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L19 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1z"
/>
</svg>
</span>
</a>
.
</div>
</div>
<div
class="MuiDialogActions-root css-1xk6pnx-MuiDialogActions-root"
>
<button
class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium css-1hkfg6j-MuiButtonBase-root-MuiButton-root"
tabindex="0"
type="button"
>
Cancel
<span
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
/>
</button>
<button
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium Mui-disabled MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium css-1lu37fw-MuiButtonBase-root-MuiButton-root"
disabled=""
tabindex="-1"
type="submit"
>
Add
</button>
</div>
</form>
</div>
</div>
<div
data-testid="sentinelEnd"
tabindex="0"
/>
</div>
</body>
at waitForWrapper (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/wait-for.js:187:27)
at /home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/@testing-library/dom/dist/query-helpers.js:101:33
at Object.findByText (/home/runner/work/safe-wallet-web/safe-wallet-web/src/tests/pages/apps.test.tsx:401:41)
Check failure on line 41 in src/hooks/__tests__/useVisibleBalances.test.ts
github-actions / jest-github-action
useVisibleBalances > return only visible balance
Error: expect(received).toEqual(expected) // deep equality
Expected: "60"
Received: "100"
at Object.toEqual (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useVisibleBalances.test.ts:95:47)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at runNextTicks (node:internal/process/task_queues:60:5)
at processImmediate (node:internal/timers:447:9)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 99 in src/hooks/__tests__/useVisibleBalances.test.ts
github-actions / jest-github-action
useVisibleBalances > computation works for high precision numbers
Error: expect(received).toEqual(expected) // deep equality
Expected: "100.012345678901234567"
Received: "200.012345678901234567"
at Object.toEqual (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useVisibleBalances.test.ts:166:47)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at runNextTicks (node:internal/process/task_queues:60:5)
at processImmediate (node:internal/timers:447:9)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 170 in src/hooks/__tests__/useVisibleBalances.test.ts
github-actions / jest-github-action
useVisibleBalances > computation works for high USD values
Error: expect(received).toEqual(expected) // deep equality
Expected: "28303710905000000.0123456789"
Received: "28303710905000100.0123456789"
at Object.toEqual (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useVisibleBalances.test.ts:225:47)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at runNextTicks (node:internal/process/task_queues:60:5)
at processImmediate (node:internal/timers:447:9)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 27 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should read location.pathname if useRouter query.safe is empty
Error: expect(received).toEqual(expected) // deep equality
Expected: "43114"
Received: "1"
at Object.toEqual (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:40:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 43 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should read location.search if useRouter query.safe is empty
Error: expect(received).toEqual(expected) // deep equality
Expected: "43114"
Received: "1"
at Object.toEqual (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:56:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 59 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should read location.search if useRouter query.chain is empty
Error: expect(received).toEqual(expected) // deep equality
Expected: "137"
Received: "1"
at Object.toEqual (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:72:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 75 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should return the default chainId if no query params
Error: expect(received).toBe(expected) // Object.is equality
Expected: "5"
Received: "1"
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:77:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 80 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should return the chainId based on the chain query
Error: expect(received).toBe(expected) // Object.is equality
Expected: "100"
Received: "1"
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:86:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 89 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should return the chainId from the safe address
Error: expect(received).toBe(expected) // Object.is equality
Expected: "137"
Received: "1"
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:95:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 98 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should return the wallet chain id if no chain in the URL and it is present in the chain configs
Error: expect(received).toBe(expected) // Object.is equality
Expected: "1337"
Received: "1"
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:113:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 116 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should return the last used chain id if no chain in the URL and the connect wallet chain id is not present in the chain configs
Error: expect(received).toBe(expected) // Object.is equality
Expected: "5"
Received: "1"
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:131:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)
Check failure on line 134 in src/hooks/__tests__/useChainId.test.ts
github-actions / jest-github-action
useChainId hook > should return the last used chain id if no wallet is connected and there is no chain in the URL
Error: expect(received).toBe(expected) // Object.is equality
Expected: "100"
Received: "1"
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/__tests__/useChainId.test.ts:140:28)
at Promise.then.completed (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:298:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/utils.js:231:10)
at _callCircusTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:316:40)
at _runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:252:3)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:126:9)
at _runTestsForDescribeBlock (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:121:9)
at run (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/run.js:71:3)
at runAndTransformResultsToJestFormat (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
at jestAdapter (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
at runTestInternal (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:367:16)
at runTest (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/runTest.js:444:34)