Jest tests failed
Failed tests: 11/958. Failed suites: 11/132.
Details
● 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=":r2k:"
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=":r2k:"
>
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=":r2l:"
id=":r2l:-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=":r2l:"
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 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)
● safeCoreSDK › initSafeSDK › Supported contracts › should return an L1 SDK instance for mainnet
expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
141 |
142 | expect(sdk).toBeInstanceOf(Safe)
> 143 | expect(sdk?.getContractManager().isL1SafeMasterCopy).toBe(true)
| ^
144 | })
145 |
146 | it('should return an L2 SDK instance for L2 chain', async () => {
at Object.toBe (src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:143:62)
● safeCoreSDK › initSafeSDK › Supported contracts › should return an L1 SDK instance for legacy Safes, regardless of chain
expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
179 |
180 | expect(sdk).toBeInstanceOf(Safe)
> 181 | expect(sdk?.getContractManager().isL1SafeMasterCopy).toBe(true)
| ^
182 | })
183 | })
184 |
at Object.toBe (src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:181:62)
● safeCoreSDK › initSafeSDK › Unsupported contracts › should return an L1 SDK instance for L1 contracts not deployed on mainnet
expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
219 |
220 | expect(sdk).toBeInstanceOf(Safe)
> 221 | expect(sdk?.getContractManager().isL1SafeMasterCopy).toBe(true)
| ^
222 | })
223 |
224 | it('should return undefined for unsupported mastercopies', async () => {
at Object.toBe (src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:221:62)
● safeCoreSDK › initSafeSDK › Unsupported contracts › should return undefined for unsupported mastercopies
expect(received).toBeUndefined()
Received: {}
237 | })
238 |
> 239 | expect(sdk).toBeUndefined()
| ^
240 | })
241 | })
242 | })
at Object.toBeUndefined (src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:239:21)
● FallbackHandler › No Fallback Handler › should render the Fallback Handler and warning tooltip when no Fallback Handler is set
expect(received).toBeInTheDocument()
received value must be an HTMLElement or an SVGElement.
Received has value: null
Ignored nodes: comments, script, style
<html>
<head />
<body>
<div>
<div
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 css-9d3nxz-MuiPaper-root"
>
<div
class="MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-3 css-jtuf4s-MuiGrid-root"
>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-lg-4 css-1qm8set-MuiGrid-root"
>
<h4
class="MuiTypography-root MuiTypography-h4 css-fohhgb-MuiTypography-root"
>
Fallback handler
<span
aria-labelledby=":r7:"
class=""
data-mui-internal-clone-element="true"
>
<mock-icon
aria-hidden="true"
classname="MuiSvgIcon-root MuiSvgIcon-colorWarning MuiSvgIcon-fontSizeSmall css-k1ci8q-MuiSvgIcon-root"
data-testid="fallback-handler-warning"
focusable="false"
/>
</span>
</h4>
</div>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-1vd824g-MuiGrid-root"
>
<div
class="MuiBox-root css-0"
>
<p
class="MuiTypography-root MuiTypography-body1 css-1pqjor9-MuiTypography-root"
>
The fallback handler adds fallback logic for funtionality that may not be present in the Safe Account contract. Learn more about the fallback handler
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sck05e-MuiTypography-root-MuiLink-root"
href="https://help.safe.global/en/articles/40838-what-is-a-fallback-handler-and-how-does-it-relate-to-safe"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
here
<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>
</p>
<p
class="MuiTypography-root MuiTypography-body1 css-1vorgb8-MuiTypography-root"
>
No fallback handler set
</p>
</div>
</div>
</div>
</div>
</div>
<div
class="MuiTooltip-popper MuiTooltip-popperInteractive css-ykn06b-MuiPopper-root-MuiTooltip-popper MuiPopper-root"
data-popper-escaped=""
data-popper-placement="top"
data-popper-reference-hidden=""
id=":r7:"
role="tooltip"
style="position: absolute; top: 0px; left: 0px; margin: 0px; bottom: 0px; transform: translate(0px, 0px);"
>
<div
class="MuiTooltip-tooltip MuiTooltip-tooltipPlacementTop css-9sguey-MuiTooltip-tooltip"
style="opacity: 1; transform: none; transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 133ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
>
The
BNB Safe
may not work correctly as no fallback handler is currently set.
It can be set via the
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sck05e-MuiTypography-root-MuiLink-root"
href="/"
>
Transaction Builder
</a>
.
</div>
</div>
</body>
</html>
138 | new RegExp('The BNB Safe{Wallet} may not work correctly as no fallback handler is currently set.'),
139 | ),
> 140 | ).toBeInTheDocument()
| ^
141 | expect(fbHandler.queryByText('Transaction Builder')).toBeInTheDocument()
142 | })
143 | })
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/components/settings/FallbackHandler/__tests__/index.test.tsx:140:11)
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)
● FallbackHandler › No Fallback Handler › should conditionally append the Transaction Builder link
expect(received).toBeInTheDocument()
received value must be an HTMLElement or an SVGElement.
Received has value: null
Ignored nodes: comments, script, style
<html>
<head />
<body>
<div>
<div
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 css-9d3nxz-MuiPaper-root"
>
<div
class="MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-3 css-jtuf4s-MuiGrid-root"
>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-lg-4 css-1qm8set-MuiGrid-root"
>
<h4
class="MuiTypography-root MuiTypography-h4 css-fohhgb-MuiTypography-root"
>
Fallback handler
<span
aria-labelledby=":r8:"
class=""
data-mui-internal-clone-element="true"
>
<mock-icon
aria-hidden="true"
classname="MuiSvgIcon-root MuiSvgIcon-colorWarning MuiSvgIcon-fontSizeSmall css-k1ci8q-MuiSvgIcon-root"
data-testid="fallback-handler-warning"
focusable="false"
/>
</span>
</h4>
</div>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-1vd824g-MuiGrid-root"
>
<div
class="MuiBox-root css-0"
>
<p
class="MuiTypography-root MuiTypography-body1 css-1pqjor9-MuiTypography-root"
>
The fallback handler adds fallback logic for funtionality that may not be present in the Safe Account contract. Learn more about the fallback handler
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sck05e-MuiTypography-root-MuiLink-root"
href="https://help.safe.global/en/articles/40838-what-is-a-fallback-handler-and-how-does-it-relate-to-safe"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
here
<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>
</p>
<p
class="MuiTypography-root MuiTypography-body1 css-1vorgb8-MuiTypography-root"
>
No fallback handler set
</p>
</div>
</div>
</div>
</div>
</div>
<div
class="MuiTooltip-popper MuiTooltip-popperInteractive css-ykn06b-MuiPopper-root-MuiTooltip-popper MuiPopper-root"
data-popper-escaped=""
data-popper-placement="top"
data-popper-reference-hidden=""
id=":r8:"
role="tooltip"
style="position: absolute; top: 0px; left: 0px; margin: 0px; bottom: 0px; transform: translate(0px, 0px);"
>
<div
class="MuiTooltip-tooltip MuiTooltip-tooltipPlacementTop css-9sguey-MuiTooltip-tooltip"
style="opacity: 1; transform: none; transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 133ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
>
The
BNB Safe
may not work correctly as no fallback handler is currently set.
</div>
</div>
</body>
</html>
174 | new RegExp('The BNB Safe{Wallet} may not work correctly as no fallback handler is currently set.'),
175 | ),
> 176 | ).toBeInTheDocument()
| ^
177 | expect(fbHandler.queryByText('Transaction Builder')).not.toBeInTheDocument()
178 | })
179 | })
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/components/settings/FallbackHandler/__tests__/index.test.tsx:176:11)
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)
● 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 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)
● Pairing utils › isPairingSupported › should return true if the wallet is enabled
expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
30 | const disabledWallets = ['walletConnect']
31 | const result = isPairingSupported(disabledWallets)
> 32 | expect(result).toBe(true)
| ^
33 | })
34 |
35 | it('should return false if the wallet is disabled', () => {
at Object.toBe (src/services/pairing/__tests__/utils.test.ts:32:22)
● Pairing utils › isPairingSupported › should return false if the wallet is disabled
expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
36 | const disabledWallets1: string[] = []
37 | const result1 = isPairingSupported(disabledWallets1)
> 38 | expect(result1).toBe(true)
| ^
39 |
40 | const disabledWallets2 = ['safeMobile']
41 | const result2 = isPairingSupported(disabledWallets2)
at Object.toBe (src/services/pairing/__tests__/utils.test.ts:38:23)
Annotations
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=":r2k:"
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=":r2k:"
>
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=":r2l:"
id=":r2l:-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=":r2l:"
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 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 127 in src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts
github-actions / jest-github-action
safeCoreSDK > initSafeSDK > Supported contracts > should return an L1 SDK instance for mainnet
Error: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:143:62)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:538:9)
at processTimers (node:internal/timers:512:7)
Check failure on line 165 in src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts
github-actions / jest-github-action
safeCoreSDK > initSafeSDK > Supported contracts > should return an L1 SDK instance for legacy Safes, regardless of chain
Error: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:181:62)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:538:9)
at processTimers (node:internal/timers:512:7)
Check failure on line 205 in src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts
github-actions / jest-github-action
safeCoreSDK > initSafeSDK > Unsupported contracts > should return an L1 SDK instance for L1 contracts not deployed on mainnet
Error: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:221:62)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:538:9)
at processTimers (node:internal/timers:512:7)
Check failure on line 224 in src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts
github-actions / jest-github-action
safeCoreSDK > initSafeSDK > Unsupported contracts > should return undefined for unsupported mastercopies
Error: expect(received).toBeUndefined()
Received: {}
at Object.toBeUndefined (/home/runner/work/safe-wallet-web/safe-wallet-web/src/hooks/coreSDK/__tests__/safeCoreSDK.test.ts:239:21)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:538:9)
at processTimers (node:internal/timers:512:7)
Check failure on line 107 in src/components/settings/FallbackHandler/__tests__/index.test.tsx
github-actions / jest-github-action
FallbackHandler > No Fallback Handler > should render the Fallback Handler and warning tooltip when no Fallback Handler is set
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>
<div>
<div
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 css-9d3nxz-MuiPaper-root"
>
<div
class="MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-3 css-jtuf4s-MuiGrid-root"
>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-lg-4 css-1qm8set-MuiGrid-root"
>
<h4
class="MuiTypography-root MuiTypography-h4 css-fohhgb-MuiTypography-root"
>
Fallback handler
<span
aria-labelledby=":r7:"
class=""
data-mui-internal-clone-element="true"
>
<mock-icon
aria-hidden="true"
classname="MuiSvgIcon-root MuiSvgIcon-colorWarning MuiSvgIcon-fontSizeSmall css-k1ci8q-MuiSvgIcon-root"
data-testid="fallback-handler-warning"
focusable="false"
/>
</span>
</h4>
</div>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-1vd824g-MuiGrid-root"
>
<div
class="MuiBox-root css-0"
>
<p
class="MuiTypography-root MuiTypography-body1 css-1pqjor9-MuiTypography-root"
>
The fallback handler adds fallback logic for funtionality that may not be present in the Safe Account contract. Learn more about the fallback handler
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sck05e-MuiTypography-root-MuiLink-root"
href="https://help.safe.global/en/articles/40838-what-is-a-fallback-handler-and-how-does-it-relate-to-safe"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
here
<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>
</p>
<p
class="MuiTypography-root MuiTypography-body1 css-1vorgb8-MuiTypography-root"
>
No fallback handler set
</p>
</div>
</div>
</div>
</div>
</div>
<div
class="MuiTooltip-popper MuiTooltip-popperInteractive css-ykn06b-MuiPopper-root-MuiTooltip-popper MuiPopper-root"
data-popper-escaped=""
data-popper-placement="top"
data-popper-reference-hidden=""
id=":r7:"
role="tooltip"
style="position: absolute; top: 0px; left: 0px; margin: 0px; bottom: 0px; transform: translate(0px, 0px);"
>
<div
class="MuiTooltip-tooltip MuiTooltip-tooltipPlacementTop css-9sguey-MuiTooltip-tooltip"
style="opacity: 1; transform: none; transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 133ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
>
The
BNB Safe
may not work correctly as no fallback handler is currently set.
It can be set via the
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sck05e-MuiTypography-root-MuiLink-root"
href="/"
>
Transaction Builder
</a>
.
</div>
</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/components/settings/FallbackHandler/__tests__/index.test.tsx:140:11)
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 145 in src/components/settings/FallbackHandler/__tests__/index.test.tsx
github-actions / jest-github-action
FallbackHandler > No Fallback Handler > should conditionally append the Transaction Builder link
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>
<div>
<div
class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 css-9d3nxz-MuiPaper-root"
>
<div
class="MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-3 css-jtuf4s-MuiGrid-root"
>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-12 MuiGrid-grid-lg-4 css-1qm8set-MuiGrid-root"
>
<h4
class="MuiTypography-root MuiTypography-h4 css-fohhgb-MuiTypography-root"
>
Fallback handler
<span
aria-labelledby=":r8:"
class=""
data-mui-internal-clone-element="true"
>
<mock-icon
aria-hidden="true"
classname="MuiSvgIcon-root MuiSvgIcon-colorWarning MuiSvgIcon-fontSizeSmall css-k1ci8q-MuiSvgIcon-root"
data-testid="fallback-handler-warning"
focusable="false"
/>
</span>
</h4>
</div>
<div
class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-1vd824g-MuiGrid-root"
>
<div
class="MuiBox-root css-0"
>
<p
class="MuiTypography-root MuiTypography-body1 css-1pqjor9-MuiTypography-root"
>
The fallback handler adds fallback logic for funtionality that may not be present in the Safe Account contract. Learn more about the fallback handler
<a
class="MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-1sck05e-MuiTypography-root-MuiLink-root"
href="https://help.safe.global/en/articles/40838-what-is-a-fallback-handler-and-how-does-it-relate-to-safe"
rel="noreferrer noopener"
target="_blank"
>
<span
class="MuiBox-root css-14f7ucs"
>
here
<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>
</p>
<p
class="MuiTypography-root MuiTypography-body1 css-1vorgb8-MuiTypography-root"
>
No fallback handler set
</p>
</div>
</div>
</div>
</div>
</div>
<div
class="MuiTooltip-popper MuiTooltip-popperInteractive css-ykn06b-MuiPopper-root-MuiTooltip-popper MuiPopper-root"
data-popper-escaped=""
data-popper-placement="top"
data-popper-reference-hidden=""
id=":r8:"
role="tooltip"
style="position: absolute; top: 0px; left: 0px; margin: 0px; bottom: 0px; transform: translate(0px, 0px);"
>
<div
class="MuiTooltip-tooltip MuiTooltip-tooltipPlacementTop css-9sguey-MuiTooltip-tooltip"
style="opacity: 1; transform: none; transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 133ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"
>
The
BNB Safe
may not work correctly as no fallback handler is currently set.
</div>
</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/components/settings/FallbackHandler/__tests__/index.test.tsx:176:11)
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 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 processTicksAndRejections (node:internal/process/task_queues:95:5)
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)
at Object.worker (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/testWorker.js:106:12)
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 processTicksAndRejections (node:internal/process/task_queues:95:5)
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)
at Object.worker (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/testWorker.js:106:12)
Check failure on line 29 in src/services/pairing/__tests__/utils.test.ts
github-actions / jest-github-action
Pairing utils > isPairingSupported > should return true if the wallet is enabled
Error: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/services/pairing/__tests__/utils.test.ts:32:22)
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 processTicksAndRejections (node:internal/process/task_queues:95:5)
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)
at Object.worker (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/testWorker.js:106:12)
Check failure on line 35 in src/services/pairing/__tests__/utils.test.ts
github-actions / jest-github-action
Pairing utils > isPairingSupported > should return false if the wallet is disabled
Error: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
at Object.toBe (/home/runner/work/safe-wallet-web/safe-wallet-web/src/services/pairing/__tests__/utils.test.ts:38:23)
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 processTicksAndRejections (node:internal/process/task_queues:95:5)
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)
at Object.worker (/home/runner/work/safe-wallet-web/safe-wallet-web/node_modules/jest-runner/build/testWorker.js:106:12)