From 469cbc2d7473769053217acd53b80066eae38062 Mon Sep 17 00:00:00 2001 From: joshuakrueger-dfx Date: Tue, 4 Aug 2026 17:02:39 +0200 Subject: [PATCH 1/6] Keep the deep link from the mail across the login redirect The mail that asks a customer for a verification call links to /settings?a=call, and that parameter is what scrolls the page to the section. A customer who is not logged in when they click it never gets there: the guard sends them to the login and memorizes only the path, so after signing in they land on the settings page with the anchor gone and have to find the section themselves. Two support tickets describe exactly that, and in both accounts the call settings were still untouched at the time of writing. Memorize the query alongside the path. An explicitly passed redirectPath stays as it is. Credentials and personal data are already stripped from the URL before the guard runs, so they are not carried along - measured, not assumed. --- e2e/mail-deeplink-call-anchor.spec.ts | 73 +++++++++++++++++++++ src/__tests__/navigation-redirect.test.ts | 78 +++++++++++++++++++++++ src/hooks/navigation.hook.ts | 3 +- 3 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 e2e/mail-deeplink-call-anchor.spec.ts create mode 100644 src/__tests__/navigation-redirect.test.ts diff --git a/e2e/mail-deeplink-call-anchor.spec.ts b/e2e/mail-deeplink-call-anchor.spec.ts new file mode 100644 index 000000000..94ea99f27 --- /dev/null +++ b/e2e/mail-deeplink-call-anchor.spec.ts @@ -0,0 +1,73 @@ +import { expect, test } from '@playwright/test'; + +/** + * Mail deep-link: customers open https://app.dfx.swiss/settings?a=call from the + * verification-call mail. Without a session they are sent to /login; after login + * they must return to /settings?a=call so the Verification Call section scrolls + * into view (useAnchor). + * + * Full wallet login cannot be automated here. This spec covers the unauthenticated + * hop and proves the memorized return path still carries `a=call` by opening the + * mail-login tile in the same SPA session and inspecting the signInWithMail + * redirectUri payload (ConnectMail builds it from AppHandlingContext.redirectPath). + * + * Does NOT cover: + * - Completing wallet login and the post-login navigate(redirectPath) hop + * - Actual scroll-into-view of the Verification Call block on settings + * - Full magic-link mail login end-to-end + */ +test.describe('Mail deep-link a=call survives login redirect memory', () => { + test('unauthenticated /settings?a=call → /login keeps a=call in redirectPath', async ({ page }) => { + let capturedRedirectUri: string | undefined; + + await page.route('**/*', async (route) => { + const request = route.request(); + if (request.method() === 'POST') { + try { + const body = request.postDataJSON() as { redirectUri?: string; mail?: string } | null; + if (body && typeof body.redirectUri === 'string' && body.mail) { + capturedRedirectUri = body.redirectUri; + await route.fulfill({ + status: 200, + contentType: 'application/json', + body: JSON.stringify({}), + }); + return; + } + } catch { + // not JSON / not the mail sign-in body — fall through + } + } + await route.continue(); + }); + + await page.goto('/settings?a=call'); + await page.waitForLoadState('networkidle'); + + // Guard must send unauthenticated users to login. + await expect(page).toHaveURL(/\/login/, { timeout: 15000 }); + + // Same SPA session: open mail login so ConnectMail reads redirectPath. + const mailTile = page.locator('img[src*="mail"]'); + await expect(mailTile.first()).toBeVisible({ timeout: 15000 }); + await mailTile.first().click(); + + const emailInput = page.locator('input[type="email"]'); + await expect(emailInput).toBeVisible({ timeout: 10000 }); + await emailInput.fill('deeplink-probe@example.com'); + + const submit = page.locator('button[type="submit"]'); + await expect(submit).toBeEnabled({ timeout: 5000 }); + await submit.click(); + + await expect + .poll(() => capturedRedirectUri, { + timeout: 15000, + message: 'signInWithMail should have been called with a redirectUri', + }) + .toBeTruthy(); + + expect(capturedRedirectUri).toContain('/settings'); + expect(capturedRedirectUri).toContain('a=call'); + }); +}); diff --git a/src/__tests__/navigation-redirect.test.ts b/src/__tests__/navigation-redirect.test.ts new file mode 100644 index 000000000..022d5c379 --- /dev/null +++ b/src/__tests__/navigation-redirect.test.ts @@ -0,0 +1,78 @@ +// Regression: setRedirect must remember pathname + search so mail deep-links +// (e.g. /settings?a=call) return to the same section after login. An explicit +// options.redirectPath must stay untouched. + +// utils.ts pulls ESM from @dfx.swiss/react via navigation.hook → relativeUrl; stub it. +jest.mock('@dfx.swiss/react', () => ({})); +jest.mock('src/dto/safe.dto', () => ({})); + +const mockSetRedirectPath = jest.fn(); +const mockNavigateTo = jest.fn(); +let mockPathname = '/settings'; +let mockSearch = '?a=call'; +let mockRedirectPath: string | undefined; + +jest.mock('react-router-dom', () => ({ + useNavigate: () => mockNavigateTo, + useLocation: () => ({ pathname: mockPathname, search: mockSearch }), +})); + +jest.mock('../contexts/app-handling.context', () => ({ + useAppHandlingContext: () => ({ + redirectPath: mockRedirectPath, + setRedirectPath: mockSetRedirectPath, + }), +})); + +import { act, renderHook } from '@testing-library/react'; +import { useNavigation } from '../hooks/navigation.hook'; + +describe('useNavigation setRedirect query survival', () => { + beforeEach(() => { + jest.clearAllMocks(); + mockPathname = '/settings'; + mockSearch = '?a=call'; + mockRedirectPath = undefined; + }); + + it('includes the location query when memorizing the current path for return', () => { + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate('/login', { setRedirect: true }); + }); + + expect(mockSetRedirectPath).toHaveBeenCalledTimes(1); + expect(mockSetRedirectPath).toHaveBeenCalledWith('/settings?a=call'); + }); + + it('uses an explicit redirectPath unchanged (no query appended from location)', () => { + mockPathname = '/settings'; + mockSearch = '?a=call'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate('/login', { setRedirect: true, redirectPath: '/account' }); + }); + + expect(mockSetRedirectPath).toHaveBeenCalledTimes(1); + expect(mockSetRedirectPath).toHaveBeenCalledWith('/account'); + expect(mockSetRedirectPath.mock.calls[0][0]).not.toContain('a=call'); + }); + + it('stores the bare pathname when the location has no query (no empty ?)', () => { + mockPathname = '/settings'; + mockSearch = ''; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate('/login', { setRedirect: true }); + }); + + expect(mockSetRedirectPath).toHaveBeenCalledTimes(1); + expect(mockSetRedirectPath).toHaveBeenCalledWith('/settings'); + expect(mockSetRedirectPath.mock.calls[0][0]).not.toContain('?'); + }); +}); diff --git a/src/hooks/navigation.hook.ts b/src/hooks/navigation.hook.ts index 8ca2cd78b..a7ad9644f 100644 --- a/src/hooks/navigation.hook.ts +++ b/src/hooks/navigation.hook.ts @@ -22,7 +22,8 @@ export function useNavigation(): NavigationInterface { const { redirectPath, setRedirectPath } = useAppHandlingContext(); function navigate(to: To | number, options?: NavigationOptions) { - if (options?.setRedirect) setRedirectPath(options?.redirectPath ?? pathname); + // Include search so deep-links (e.g. /settings?a=call) survive login; explicit redirectPath unchanged. + if (options?.setRedirect) setRedirectPath(options?.redirectPath ?? `${pathname}${search}`); switch (typeof to) { case 'number': From d0a5542474aa1897833e30eddc65a5ff1d596d55 Mon Sep 17 00:00:00 2001 From: joshuakrueger-dfx Date: Tue, 4 Aug 2026 17:21:43 +0200 Subject: [PATCH 2/6] Remember only the anchor, not whatever else is in the URL The stored return path is handed to outbound links: the mail login builds its redirectUri from it and Alby its redirect. Both filter the live search for that reason - the comment in connect-mail says so - but neither filters what the stored path already carries. Keeping the whole query there would have routed around that: a KYC access hash sits in the URL as code=, is deliberately not stripped on KYC routes, and the 2FA step stores its return path from exactly such a page. It would have gone out in a mail to a freely typed address. Store an allowlisted set instead, currently just the mail anchor. The tests now pin the discarded hash and the navigation target itself, which two mutations had survived. --- src/__tests__/navigation-redirect.test.ts | 71 ++++++++++++++++++++++- src/__tests__/utils.test.ts | 16 +++++ src/hooks/navigation.hook.ts | 9 ++- src/util/utils.ts | 16 +++++ 4 files changed, 106 insertions(+), 6 deletions(-) diff --git a/src/__tests__/navigation-redirect.test.ts b/src/__tests__/navigation-redirect.test.ts index 022d5c379..c9ea3841f 100644 --- a/src/__tests__/navigation-redirect.test.ts +++ b/src/__tests__/navigation-redirect.test.ts @@ -1,6 +1,7 @@ -// Regression: setRedirect must remember pathname + search so mail deep-links -// (e.g. /settings?a=call) return to the same section after login. An explicit -// options.redirectPath must stay untouched. +// Regression: setRedirect must remember pathname + allowlisted search so mail deep-links +// (e.g. /settings?a=call) return to the same section after login, without forwarding +// sensitive params (e.g. code=) into magic-link / Alby redirectUri. +// An explicit options.redirectPath must stay untouched. // utils.ts pulls ESM from @dfx.swiss/react via navigation.hook → relativeUrl; stub it. jest.mock('@dfx.swiss/react', () => ({})); @@ -75,4 +76,68 @@ describe('useNavigation setRedirect query survival', () => { expect(mockSetRedirectPath).toHaveBeenCalledWith('/settings'); expect(mockSetRedirectPath.mock.calls[0][0]).not.toContain('?'); }); + + it('discards code (KYC access hash) when memorizing the return path', () => { + mockPathname = '/kyc'; + mockSearch = '?code=secret-kyc-hash'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate('/2fa', { setRedirect: true }); + }); + + expect(mockSetRedirectPath).toHaveBeenCalledTimes(1); + expect(mockSetRedirectPath).toHaveBeenCalledWith('/kyc'); + expect(mockSetRedirectPath.mock.calls[0][0]).not.toContain('code'); + }); + + it('keeps allowlisted params and drops the rest when mixed', () => { + mockPathname = '/settings'; + mockSearch = '?a=call&code=secret-kyc-hash&user=alice@example.com'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate('/login', { setRedirect: true }); + }); + + expect(mockSetRedirectPath).toHaveBeenCalledTimes(1); + expect(mockSetRedirectPath).toHaveBeenCalledWith('/settings?a=call'); + const stored: string = mockSetRedirectPath.mock.calls[0][0]; + expect(stored).not.toContain('code'); + expect(stored).not.toContain('user'); + }); + + it('navigateTo receives the merged relative target (not the bare path)', () => { + mockPathname = '/settings'; + mockSearch = '?a=call'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate('/login', { setRedirect: true }); + }); + + // navigate(string) must call navigateTo(relativeUrl({ path: to, params: live search })), + // not navigateTo(to) alone — otherwise live query is dropped on the way to the target. + expect(mockNavigateTo).toHaveBeenCalled(); + expect(mockNavigateTo.mock.calls[0][0]).toBe('/login?a=call'); + }); + + it('goBack navigates to the stored redirectPath, not a hard-coded default', () => { + mockRedirectPath = '/settings?a=call'; + mockPathname = '/login'; + mockSearch = ''; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.goBack(); + }); + + expect(mockSetRedirectPath).toHaveBeenCalledWith(undefined); + expect(mockNavigateTo).toHaveBeenCalled(); + expect(mockNavigateTo.mock.calls[0][0]).toBe('/settings?a=call'); + }); }); diff --git a/src/__tests__/utils.test.ts b/src/__tests__/utils.test.ts index e22d572b8..f966d3c20 100644 --- a/src/__tests__/utils.test.ts +++ b/src/__tests__/utils.test.ts @@ -42,6 +42,7 @@ import { formatLocationAddress, apiUrl, relativeUrl, + redirectAllowedParams, } from '../util/utils'; describe('utils', () => { @@ -436,4 +437,19 @@ describe('utils', () => { expect(query.get('issue-type')).toBe('LimitRequest'); }); }); + + describe('redirectAllowedParams', () => { + it('copies only a when present', () => { + const params = redirectAllowedParams('?a=call&code=secret&user=alice@example.com'); + expect(params.get('a')).toBe('call'); + expect(params.get('code')).toBeNull(); + expect(params.get('user')).toBeNull(); + expect([...params.keys()]).toEqual(['a']); + }); + + it('returns an empty set when a is absent', () => { + const params = redirectAllowedParams('?code=secret&user=alice@example.com'); + expect([...params.keys()]).toEqual([]); + }); + }); }); diff --git a/src/hooks/navigation.hook.ts b/src/hooks/navigation.hook.ts index a7ad9644f..27668bcec 100644 --- a/src/hooks/navigation.hook.ts +++ b/src/hooks/navigation.hook.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import { NavigateOptions, To, useLocation, useNavigate } from 'react-router-dom'; import { useAppHandlingContext } from '../contexts/app-handling.context'; -import { relativeUrl } from '../util/utils'; +import { redirectAllowedParams, relativeUrl } from '../util/utils'; interface NavigationOptions extends NavigateOptions { clearParams?: string[]; @@ -22,8 +22,11 @@ export function useNavigation(): NavigationInterface { const { redirectPath, setRedirectPath } = useAppHandlingContext(); function navigate(to: To | number, options?: NavigationOptions) { - // Include search so deep-links (e.g. /settings?a=call) survive login; explicit redirectPath unchanged. - if (options?.setRedirect) setRedirectPath(options?.redirectPath ?? `${pathname}${search}`); + // Remember only allowlisted query params (e.g. a=call) so deep-links survive login without + // leaking code=/user= into magic-link / Alby redirectUri. Explicit redirectPath unchanged. + if (options?.setRedirect) { + setRedirectPath(options?.redirectPath ?? relativeUrl({ path: pathname, params: redirectAllowedParams(search) })); + } switch (typeof to) { case 'number': diff --git a/src/util/utils.ts b/src/util/utils.ts index 01cdb7dea..3895a9653 100644 --- a/src/util/utils.ts +++ b/src/util/utils.ts @@ -80,6 +80,22 @@ export function relativeUrl({ path, params }: { path: string; params?: URLSearch return query ? `${pathname}?${query}` : pathname; } +/** + * Allowlist for login-return paths stored via setRedirect: only params that may reappear in + * mail magic-link redirectUri / Alby redirect. Currently `a` (mail section anchor). Do not copy + * the entire live search — that would leak code=/user=/arbitrary into the outbound link. + * Explicit options.redirectPath is not filtered by this helper. + * Same style as personalIbanOnlyParams (src/util/personal-iban.ts). + */ +export function redirectAllowedParams(search: string): URLSearchParams { + const params = new URLSearchParams(); + const a = new URLSearchParams(search).get('a'); + if (a != null) { + params.set('a', a); + } + return params; +} + // SDK call path (DfxHttpClient config.url): the leading slash is FORBIDDEN because the client joins // baseUrl + '/' + url. A leading slash would produce a double slash (e.g. .../v1//realunit/...) and // a 404 before any guard runs. Use for call() configs, never for router navigation. From 1798586862d7d9d2da8bad76427ab077bf2a2cbd Mon Sep 17 00:00:00 2001 From: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Date: Wed, 5 Aug 2026 08:09:59 +0000 Subject: [PATCH 3/6] Note the double-booked `a` param in the redirect allowlist `a` is the mail section anchor here, but payment-link routes read the same key as the `amount` shorthand (payment-link.context.tsx). Those routes are unguarded and never reach setRedirect, so the two uses do not collide today. The allowlist comment is what the next person reads before adding a key, and it did not mention the collision. Comment only, no behaviour change. --- src/util/utils.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/util/utils.ts b/src/util/utils.ts index 3895a9653..861e0dc35 100644 --- a/src/util/utils.ts +++ b/src/util/utils.ts @@ -82,8 +82,12 @@ export function relativeUrl({ path, params }: { path: string; params?: URLSearch /** * Allowlist for login-return paths stored via setRedirect: only params that may reappear in - * mail magic-link redirectUri / Alby redirect. Currently `a` (mail section anchor). Do not copy - * the entire live search — that would leak code=/user=/arbitrary into the outbound link. + * mail magic-link redirectUri / Alby redirect. Currently `a` (mail section anchor, see + * useAnchor). Note that `a` is double-booked: payment-link routes read it as the `amount` + * shorthand (payment-link.context.tsx). Those routes are unguarded and never reach setRedirect, + * so the two uses do not collide today — but check both before adding a key here. + * Do not copy the entire live search — that would leak code=/user=/arbitrary into the outbound + * link. * Explicit options.redirectPath is not filtered by this helper. * Same style as personalIbanOnlyParams (src/util/personal-iban.ts). */ From 811b8bf685ecea60fbc580e4321a4123b8556516 Mon Sep 17 00:00:00 2001 From: joshuakrueger-dfx Date: Fri, 7 Aug 2026 15:00:21 +0200 Subject: [PATCH 4/6] Keep the outbound-redirect allowlist in one place MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit redirectAllowedParams (utils.ts) and personalIbanOnlyParams (personal-iban.ts) encoded the same security property — what may appear in an outbound redirect URI — in two independent lists, kept consistent by convention alone. A mistake there is a silent leak, not a failing test. Both now delegate to allowedParamsOnly in the new src/util/redirect-params.ts, which holds the generic filter and the two named subsets with the reason each key is in them. Their signatures and callers are unchanged. --- src/__tests__/redirect-params.test.ts | 67 +++++++++++++++++++++++++++ src/util/personal-iban.ts | 13 ++---- src/util/redirect-params.ts | 38 +++++++++++++++ src/util/utils.ts | 20 ++------ 4 files changed, 111 insertions(+), 27 deletions(-) create mode 100644 src/__tests__/redirect-params.test.ts create mode 100644 src/util/redirect-params.ts diff --git a/src/__tests__/redirect-params.test.ts b/src/__tests__/redirect-params.test.ts new file mode 100644 index 000000000..5bdb38a63 --- /dev/null +++ b/src/__tests__/redirect-params.test.ts @@ -0,0 +1,67 @@ +import { + allowedParamsOnly, + EXTERNAL_LOGIN_ALLOWED_PARAMS, + LOGIN_RETURN_ALLOWED_PARAMS, +} from '../util/redirect-params'; + +describe('allowedParamsOnly', () => { + it('returns empty params for empty search', () => { + const params = allowedParamsOnly('', LOGIN_RETURN_ALLOWED_PARAMS); + expect([...params.keys()]).toEqual([]); + }); + + it('copies only allowed keys when only those are present', () => { + const params = allowedParamsOnly('?a=call', LOGIN_RETURN_ALLOWED_PARAMS); + expect(params.get('a')).toBe('call'); + expect([...params.keys()]).toEqual(['a']); + }); + + it('returns empty params when only forbidden keys are present', () => { + const params = allowedParamsOnly('?code=secret&user=alice@example.com', LOGIN_RETURN_ALLOWED_PARAMS); + expect([...params.keys()]).toEqual([]); + }); + + it('keeps allowed keys and drops the rest when mixed', () => { + const params = allowedParamsOnly( + '?a=call&code=secret&user=alice@example.com', + LOGIN_RETURN_ALLOWED_PARAMS, + ); + expect(params.get('a')).toBe('call'); + expect(params.get('code')).toBeNull(); + expect(params.get('user')).toBeNull(); + expect([...params.keys()]).toEqual(['a']); + }); + + it('preserves empty values (key present with no value)', () => { + const params = allowedParamsOnly('?a=', LOGIN_RETURN_ALLOWED_PARAMS); + expect(params.has('a')).toBe(true); + expect(params.get('a')).toBe(''); + }); + + it('uses the first value when a key appears more than once', () => { + const params = allowedParamsOnly('?a=first&a=second', LOGIN_RETURN_ALLOWED_PARAMS); + expect(params.get('a')).toBe('first'); + expect([...params.keys()]).toEqual(['a']); + }); + + it('emits allowed keys in the order of the allowlist, not of search', () => { + const allowed = ['personal-iban', 'a'] as const; + const params = allowedParamsOnly('?a=call&personal-iban=frick', allowed); + expect([...params.keys()]).toEqual(['personal-iban', 'a']); + }); + + it('omits an allowlisted key that is missing from search', () => { + const params = allowedParamsOnly('?a=call', EXTERNAL_LOGIN_ALLOWED_PARAMS); + expect([...params.keys()]).toEqual([]); + }); +}); + +describe('named allowlist subsets', () => { + it('LOGIN_RETURN_ALLOWED_PARAMS is only a', () => { + expect([...LOGIN_RETURN_ALLOWED_PARAMS]).toEqual(['a']); + }); + + it('EXTERNAL_LOGIN_ALLOWED_PARAMS is only personal-iban', () => { + expect([...EXTERNAL_LOGIN_ALLOWED_PARAMS]).toEqual(['personal-iban']); + }); +}); diff --git a/src/util/personal-iban.ts b/src/util/personal-iban.ts index 3cc6d9c3b..a870a474b 100644 --- a/src/util/personal-iban.ts +++ b/src/util/personal-iban.ts @@ -1,4 +1,5 @@ import { FiatPaymentMethod, PersonalIbanProvider, TransactionError } from '@dfx.swiss/react'; +import { allowedParamsOnly, EXTERNAL_LOGIN_ALLOWED_PARAMS } from './redirect-params'; /** Bank Frick personal-IBAN accounts are held by DFX AG (routing sub-account), never the customer. */ export const FRICK_BANK_NAME = 'Bank Frick'; @@ -92,17 +93,9 @@ export function canOfferCollectionIban(info: { return normalized !== FRICK_EUR_COLLECTION_IBAN; } -/** - * Allowlist for external-login callbacks: only forward an explicitly present `personal-iban`. - * Do not copy the entire live search (would leak `user`, `arbitrary`, etc.). - */ +/** External-login allowlist; see EXTERNAL_LOGIN_ALLOWED_PARAMS in redirect-params.ts. */ export function personalIbanOnlyParams(search: string): URLSearchParams { - const params = new URLSearchParams(); - const personalIban = new URLSearchParams(search).get('personal-iban'); - if (personalIban != null) { - params.set('personal-iban', personalIban); - } - return params; + return allowedParamsOnly(search, EXTERNAL_LOGIN_ALLOWED_PARAMS); } /** diff --git a/src/util/redirect-params.ts b/src/util/redirect-params.ts new file mode 100644 index 000000000..b25f24f1f --- /dev/null +++ b/src/util/redirect-params.ts @@ -0,0 +1,38 @@ +/** + * Single source of truth for which query keys may appear in an outbound redirect URI. + * Adding a key here is the only place that decides what leaves the app on login-return + * paths and external login callbacks — check every use of that key before extending. + */ + +/** + * Copy from `search` exactly the keys listed in `allowed`, in that order, and nothing else. + * A key missing from `search` is omitted (no empty placeholder). An empty value (`?a=`) is kept. + */ +export function allowedParamsOnly(search: string, allowed: readonly string[]): URLSearchParams { + const source = new URLSearchParams(search); + const params = new URLSearchParams(); + for (const key of allowed) { + const value = source.get(key); + if (value != null) { + params.set(key, value); + } + } + return params; +} + +/** + * Login-return path (`setRedirect`): only `a` (mail section anchor, see useAnchor). + * Note that `a` is double-booked: payment-link routes read it as the `amount` shorthand + * (payment-link.context.tsx). Those routes are unguarded and never reach setRedirect, + * so the two uses do not collide today — but check both before adding a key here. + * Do not copy the entire live search — that would leak code=/user=/arbitrary into the + * outbound link. + * Explicit options.redirectPath is not filtered by this helper. + */ +export const LOGIN_RETURN_ALLOWED_PARAMS = ['a'] as const; + +/** + * External login callbacks (magic-link mail, Alby): only an explicitly present `personal-iban`. + * Do not copy the entire live search (would leak `user`, `arbitrary`, etc.). + */ +export const EXTERNAL_LOGIN_ALLOWED_PARAMS = ['personal-iban'] as const; diff --git a/src/util/utils.ts b/src/util/utils.ts index 861e0dc35..8a7b1726b 100644 --- a/src/util/utils.ts +++ b/src/util/utils.ts @@ -1,5 +1,6 @@ import { Asset, Fiat, KycFile, UserAddress, Utils } from '@dfx.swiss/react'; import { CustodyAsset, CustodyAssetBalance } from 'src/dto/safe.dto'; +import { allowedParamsOnly, LOGIN_RETURN_ALLOWED_PARAMS } from './redirect-params'; export function isDefined(item: T | undefined): item is T { return item != null; @@ -80,24 +81,9 @@ export function relativeUrl({ path, params }: { path: string; params?: URLSearch return query ? `${pathname}?${query}` : pathname; } -/** - * Allowlist for login-return paths stored via setRedirect: only params that may reappear in - * mail magic-link redirectUri / Alby redirect. Currently `a` (mail section anchor, see - * useAnchor). Note that `a` is double-booked: payment-link routes read it as the `amount` - * shorthand (payment-link.context.tsx). Those routes are unguarded and never reach setRedirect, - * so the two uses do not collide today — but check both before adding a key here. - * Do not copy the entire live search — that would leak code=/user=/arbitrary into the outbound - * link. - * Explicit options.redirectPath is not filtered by this helper. - * Same style as personalIbanOnlyParams (src/util/personal-iban.ts). - */ +/** Login-return allowlist; see LOGIN_RETURN_ALLOWED_PARAMS in redirect-params.ts. */ export function redirectAllowedParams(search: string): URLSearchParams { - const params = new URLSearchParams(); - const a = new URLSearchParams(search).get('a'); - if (a != null) { - params.set('a', a); - } - return params; + return allowedParamsOnly(search, LOGIN_RETURN_ALLOWED_PARAMS); } // SDK call path (DfxHttpClient config.url): the leading slash is FORBIDDEN because the client joins From f5af6c671f5d1d1d9f9ccbd9eb7b1e6e3116a040 Mon Sep 17 00:00:00 2001 From: joshuakrueger-dfx Date: Fri, 7 Aug 2026 15:00:32 +0200 Subject: [PATCH 5/6] Bring the touched files to full coverage CONTRIBUTING requires every file a pull request touches to reach 100 % statement, branch, function and line coverage. navigation.hook.ts stood at 45.83 % and utils.ts at 54.75 %; personal-iban.ts was missing one branch. navigation-hook.test.ts covers the parts of useNavigation outside setRedirect: numeric targets, the object branch with clearParams, setParams, clearParams and the /account default in goBack. utils.test.ts covers the remaining exports, including the file, PDF and image helpers, downloadFile, the formatCurrency branches and findCustodyBalanceString. All four files now report 100 % in every column. --- src/__tests__/navigation-hook.test.ts | 131 +++++++ src/__tests__/personal-iban.test.ts | 43 +++ src/__tests__/utils.test.ts | 469 +++++++++++++++++++++++++- 3 files changed, 638 insertions(+), 5 deletions(-) create mode 100644 src/__tests__/navigation-hook.test.ts diff --git a/src/__tests__/navigation-hook.test.ts b/src/__tests__/navigation-hook.test.ts new file mode 100644 index 000000000..49a2ddaa0 --- /dev/null +++ b/src/__tests__/navigation-hook.test.ts @@ -0,0 +1,131 @@ +// Full coverage of useNavigation beyond setRedirect (see navigation-redirect.test.ts). + +jest.mock('@dfx.swiss/react', () => ({})); +jest.mock('src/dto/safe.dto', () => ({})); + +const mockSetRedirectPath = jest.fn(); +const mockNavigateTo = jest.fn(); +let mockPathname = '/settings'; +let mockSearch = '?a=call'; +let mockRedirectPath: string | undefined; + +jest.mock('react-router-dom', () => ({ + useNavigate: () => mockNavigateTo, + useLocation: () => ({ pathname: mockPathname, search: mockSearch }), +})); + +jest.mock('../contexts/app-handling.context', () => ({ + useAppHandlingContext: () => ({ + redirectPath: mockRedirectPath, + setRedirectPath: mockSetRedirectPath, + }), +})); + +import { act, renderHook } from '@testing-library/react'; +import { useNavigation } from '../hooks/navigation.hook'; + +describe('useNavigation', () => { + beforeEach(() => { + jest.clearAllMocks(); + mockPathname = '/settings'; + mockSearch = '?a=call'; + mockRedirectPath = undefined; + }); + + it('passes a number target through to navigateTo without setting a redirect path', () => { + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate(-1); + }); + + expect(mockNavigateTo).toHaveBeenCalledTimes(1); + expect(mockNavigateTo).toHaveBeenCalledWith(-1); + expect(mockSetRedirectPath).not.toHaveBeenCalled(); + }); + + it('merges live search with object target search; target params win on collision', () => { + mockSearch = '?a=call&b=live'; + mockPathname = '/settings'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate({ pathname: '/x', search: '?b=2' }); + }); + + expect(mockNavigateTo).toHaveBeenCalledTimes(1); + const target = mockNavigateTo.mock.calls[0][0] as { pathname: string; search: string }; + expect(target.pathname).toBe('/x'); + const params = new URLSearchParams(target.search.startsWith('?') ? target.search.slice(1) : target.search); + expect(params.get('a')).toBe('call'); + expect(params.get('b')).toBe('2'); + }); + + it('clearParams on object navigate removes only the listed keys from the merge', () => { + mockSearch = '?a=call&code=secret&keep=yes'; + mockPathname = '/kyc'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.navigate({ pathname: '/2fa', search: '' }, { clearParams: ['code'] }); + }); + + const target = mockNavigateTo.mock.calls[0][0] as { pathname: string; search: string }; + const params = new URLSearchParams(target.search.startsWith('?') ? target.search.slice(1) : target.search); + expect(params.get('code')).toBeNull(); + expect(params.get('a')).toBe('call'); + expect(params.get('keep')).toBe('yes'); + }); + + it('setParams navigates to the current pathname with merged params', () => { + mockPathname = '/settings'; + mockSearch = '?a=call'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.setParams(new URLSearchParams('x=1')); + }); + + expect(mockNavigateTo).toHaveBeenCalledTimes(1); + expect(mockNavigateTo.mock.calls[0][0]).toBe('/settings?a=call&x=1'); + }); + + it('clearParams navigates with replace to the current pathname without the listed keys', () => { + mockPathname = '/settings'; + mockSearch = '?a=call&keep=1'; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.clearParams(['a']); + }); + + expect(mockNavigateTo).toHaveBeenCalledTimes(1); + const [to, options] = mockNavigateTo.mock.calls[0]; + const target = to as { pathname: string; search: string }; + expect(target.pathname).toBe('/settings'); + const params = new URLSearchParams(target.search.startsWith('?') ? target.search.slice(1) : target.search); + expect(params.get('a')).toBeNull(); + expect(params.get('keep')).toBe('1'); + expect(options).toEqual(expect.objectContaining({ replace: true })); + }); + + it('goBack without a stored redirect path lands on /account', () => { + mockRedirectPath = undefined; + mockPathname = '/login'; + mockSearch = ''; + + const { result } = renderHook(() => useNavigation()); + + act(() => { + result.current.goBack(); + }); + + expect(mockSetRedirectPath).toHaveBeenCalledWith(undefined); + expect(mockNavigateTo).toHaveBeenCalled(); + expect(mockNavigateTo.mock.calls[0][0]).toBe('/account'); + }); +}); diff --git a/src/__tests__/personal-iban.test.ts b/src/__tests__/personal-iban.test.ts index 2eb016b1d..5162bc39f 100644 --- a/src/__tests__/personal-iban.test.ts +++ b/src/__tests__/personal-iban.test.ts @@ -20,8 +20,10 @@ import de from '../translations/languages/de.json'; import fr from '../translations/languages/fr.json'; import italian from '../translations/languages/it.json'; import { + canOfferCollectionIban, FRICK_ACCOUNT_HOLDER_NAME, FRICK_BANK_NAME, + FRICK_EUR_COLLECTION_IBAN, getPersonalIbanErrorMessage, getPersonalIbanKycMessage, getStoredPaymentDetailErrorMessage, @@ -295,3 +297,44 @@ describe('personalIbanOnlyParams', () => { expect([...params.keys()]).toEqual([]); }); }); + +describe('canOfferCollectionIban', () => { + const verifiedPersonal = { + currency: { name: 'EUR' }, + isPersonalIban: true, + bank: FRICK_BANK_NAME, + name: FRICK_ACCOUNT_HOLDER_NAME, + remittanceInfo: 'RF18 5390 0754 7034', + iban: 'LI21088110105923K000F', + }; + + it('returns true for a verified Frick personal IBAN that is not the collection account', () => { + expect(canOfferCollectionIban(verifiedPersonal)).toBe(true); + }); + + it('returns false when iban is missing', () => { + const { iban: _iban, ...withoutIban } = verifiedPersonal; + expect(canOfferCollectionIban(withoutIban)).toBe(false); + }); + + it('returns false for the shared collection IBAN itself', () => { + expect(canOfferCollectionIban({ ...verifiedPersonal, iban: FRICK_EUR_COLLECTION_IBAN })).toBe(false); + }); + + it('returns false without remittance info', () => { + expect(canOfferCollectionIban({ ...verifiedPersonal, remittanceInfo: undefined })).toBe(false); + }); + + it('returns false for non-EUR', () => { + expect(canOfferCollectionIban({ ...verifiedPersonal, currency: { name: 'CHF' } })).toBe(false); + }); + + it('returns false when the response is not a verified Frick personal IBAN', () => { + expect( + canOfferCollectionIban({ + ...verifiedPersonal, + isPersonalIban: false, + }), + ).toBe(false); + }); +}); diff --git a/src/__tests__/utils.test.ts b/src/__tests__/utils.test.ts index f966d3c20..3faf66820 100644 --- a/src/__tests__/utils.test.ts +++ b/src/__tests__/utils.test.ts @@ -1,12 +1,13 @@ -// Mock @dfx.swiss/react to avoid ES module issues +// Mock @dfx.swiss/react to avoid ES module issues. +// Plain functions (not jest.fn) so implementations cannot be wiped by mockReset elsewhere. jest.mock('@dfx.swiss/react', () => ({ Asset: {}, Fiat: {}, KycFile: {}, UserAddress: {}, Utils: { - formatAmount: jest.fn((amount: number) => amount.toFixed(2)), - formatAmountCrypto: jest.fn((amount: number) => amount.toString()), + formatAmount: (amount: number) => Number(amount).toFixed(2), + formatAmountCrypto: (amount: number) => String(amount), }, })); @@ -22,23 +23,38 @@ import { isEmpty, removeNullFields, delay, + timeout, + url, isAbsoluteUrl, isSafeRedirectUri, + isNode, blankedAddress, + toBase64, + readFileAsText, + openPdfFromString, + downloadPdfFromString, + openImageFromString, + handleOpenFile, + sortAddressesByBlockchain, formatBytes, + fetchJson, formatUnits, filenameDateFormat, extractFilename, + downloadFile, formatChf, formatChfOrDash, formatCurrency, + formatAmountForDisplay, formatSwissDate, formatSwissDateTime, formatSwissDateTimeWithSeconds, formatSwissTime, FormatType, deepEqual, + isAsset, equalsIgnoreCase, + findCustodyBalanceString, formatLocationAddress, apiUrl, relativeUrl, @@ -124,6 +140,54 @@ describe('utils', () => { }); }); + describe('timeout', () => { + it('resolves when the promise wins the race', async () => { + await expect(timeout(Promise.resolve('ok'), 500)).resolves.toBe('ok'); + }); + + it('rejects with Error("Timeout") when the timer wins', async () => { + jest.useFakeTimers(); + try { + const never = new Promise(() => undefined); + const resultPromise = timeout(never, 50); + const expectation = expect(resultPromise).rejects.toThrow('Timeout'); + jest.advanceTimersByTime(50); + await expectation; + } finally { + jest.useRealTimers(); + } + }); + }); + + describe('url', () => { + const originalPublicUrl = process.env.REACT_APP_PUBLIC_URL; + + afterEach(() => { + process.env.REACT_APP_PUBLIC_URL = originalPublicUrl; + }); + + it('builds from REACT_APP_PUBLIC_URL when base is omitted', () => { + process.env.REACT_APP_PUBLIC_URL = 'https://app.example.com/'; + expect(url({ path: 'settings' })).toBe('https://app.example.com/settings'); + }); + + it('uses an explicit base and appends params', () => { + const result = url({ + base: 'https://app.example.com', + path: 'login', + params: new URLSearchParams({ a: 'call' }), + }); + expect(result).toBe('https://app.example.com/login?a=call'); + }); + + it('treats an absolute path as the base', () => { + // url() normalizes base with a trailing slash before applying params + expect(url({ path: 'https://other.example.com/x', params: new URLSearchParams({ q: '1' }) })).toBe( + 'https://other.example.com/x/?q=1', + ); + }); + }); + describe('isAbsoluteUrl', () => { it('should return true for absolute URLs', () => { expect(isAbsoluteUrl('http://example.com')).toBe(true); @@ -197,12 +261,24 @@ describe('utils', () => { }); }); + describe('isNode', () => { + it('returns true for a DOM Node', () => { + expect(isNode(document.createElement('div'))).toBe(true); + expect(isNode(document.createTextNode('x'))).toBe(true); + }); + + it('returns false for null and non-nodes', () => { + expect(isNode(null)).toBe(false); + expect(isNode({} as EventTarget)).toBe(false); + }); + }); + describe('blankedAddress', () => { it('should truncate long addresses', () => { const address = '0x1234567890abcdef1234567890abcdef12345678'; const result = blankedAddress(address, { displayLength: 16 }); - expect(result).toContain('...'); - expect(result.length).toBeLessThan(address.length); + // displayLength 16 minus 0x offset 2 → 14 visible chars split half/half around '...' + expect(result).toBe('0x1234567...2345678'); }); it('should not truncate short addresses', () => { @@ -210,6 +286,227 @@ describe('utils', () => { const result = blankedAddress(address, { displayLength: 20 }); expect(result).toBe(address); }); + + it('uses default options when called with only the address', () => { + const address = '0x1234567890abcdef1234567890abcdef12345678'; + const result = blankedAddress(address); + expect(result).toContain('...'); + expect(result.startsWith('0x')).toBe(true); + }); + + it('derives displayLength from width and accounts for 0x prefix', () => { + const address = '0x1234567890abcdef1234567890abcdef12345678'; + const result = blankedAddress(address, { width: 200, scale: 1 }); + expect(result).toContain('...'); + expect(result.startsWith('0x')).toBe(true); + }); + + it('truncates non-0x addresses without the prefix offset', () => { + const address = 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh'; + const result = blankedAddress(address, { displayLength: 12 }); + expect(result).toBe('bc1qxy...hx0wlh'); + }); + }); + + describe('toBase64 and readFileAsText', () => { + it('toBase64 resolves a data URL for a file', async () => { + const file = new File(['hello'], 'hello.txt', { type: 'text/plain' }); + const result = await toBase64(file); + expect(result).toMatch(/^data:text\/plain;base64,/); + }); + + it('toBase64 rejects when FileReader errors', async () => { + const OriginalFileReader = global.FileReader; + const readerError = new ProgressEvent('error') as ProgressEvent; + class FailingReader { + result: string | null = null; + onload: ((ev: ProgressEvent) => void) | null = null; + onerror: ((ev: ProgressEvent) => void) | null = null; + readAsDataURL() { + queueMicrotask(() => { + this.onerror?.(readerError); + }); + } + } + // @ts-expect-error partial FileReader mock + global.FileReader = FailingReader; + try { + await expect(toBase64(new File(['x'], 'x.txt'))).rejects.toBe(readerError); + } finally { + global.FileReader = OriginalFileReader; + } + }); + + it('toBase64 resolves undefined when result is empty', async () => { + const OriginalFileReader = global.FileReader; + class EmptyResultReader { + result: string | null = null; + onload: ((ev: ProgressEvent) => void) | null = null; + onerror: ((ev: ProgressEvent) => void) | null = null; + readAsDataURL() { + queueMicrotask(() => { + this.result = null; + this.onload?.(new ProgressEvent('load') as ProgressEvent); + }); + } + } + // @ts-expect-error partial FileReader mock + global.FileReader = EmptyResultReader; + try { + await expect(toBase64(new File(['x'], 'x.txt'))).resolves.toBeUndefined(); + } finally { + global.FileReader = OriginalFileReader; + } + }); + + it('readFileAsText resolves file content', async () => { + const file = new File(['plain text'], 'note.txt', { type: 'text/plain' }); + await expect(readFileAsText(file)).resolves.toBe('plain text'); + }); + + it('readFileAsText rejects when FileReader errors', async () => { + const OriginalFileReader = global.FileReader; + const readerError = new ProgressEvent('error') as ProgressEvent; + class FailingReader { + result: string | null = null; + onload: ((ev: ProgressEvent) => void) | null = null; + onerror: ((ev: ProgressEvent) => void) | null = null; + readAsText() { + queueMicrotask(() => { + this.onerror?.(readerError); + }); + } + } + // @ts-expect-error partial FileReader mock + global.FileReader = FailingReader; + try { + await expect(readFileAsText(new File(['x'], 'x.txt'))).rejects.toBe(readerError); + } finally { + global.FileReader = OriginalFileReader; + } + }); + }); + + describe('PDF / image open helpers and handleOpenFile', () => { + const sampleBase64 = Buffer.from('%PDF-1.4 sample').toString('base64'); + const imageBase64 = Buffer.from([0x89, 0x50, 0x4e, 0x47]).toString('base64'); + // jsdom does not implement these; assign mocks (spyOn requires an existing function). + let createObjectURL: jest.Mock; + let revokeObjectURL: jest.Mock; + let openSpy: jest.SpyInstance; + let clickSpy: jest.SpyInstance; + + beforeEach(() => { + createObjectURL = jest.fn(() => 'blob:mock-url'); + revokeObjectURL = jest.fn(); + (URL as any).createObjectURL = createObjectURL; + (URL as any).revokeObjectURL = revokeObjectURL; + openSpy = jest.spyOn(window, 'open').mockImplementation(() => null); + clickSpy = jest.spyOn(HTMLAnchorElement.prototype, 'click').mockImplementation(() => undefined); + }); + + afterEach(() => { + delete (URL as any).createObjectURL; + delete (URL as any).revokeObjectURL; + openSpy.mockRestore(); + clickSpy.mockRestore(); + document.body.innerHTML = ''; + }); + + it('openPdfFromString opens a new tab by default', () => { + openPdfFromString(sampleBase64); + expect(createObjectURL).toHaveBeenCalled(); + expect(openSpy).toHaveBeenCalledWith('blob:mock-url'); + }); + + it('openPdfFromString embeds inline when newTab is false', () => { + openPdfFromString(sampleBase64, false); + expect(openSpy).not.toHaveBeenCalled(); + const embed = document.body.querySelector('embed'); + expect(embed).not.toBeNull(); + expect(embed?.type).toBe('application/pdf'); + expect(embed?.src).toContain('blob:mock-url'); + }); + + it('downloadPdfFromString downloads via downloadFile', () => { + downloadPdfFromString(sampleBase64, 'doc.pdf'); + expect(createObjectURL).toHaveBeenCalled(); + expect(revokeObjectURL).toHaveBeenCalledWith('blob:mock-url'); + expect(document.body.querySelector('a')).toBeNull(); + }); + + it('openImageFromString opens a new tab by default', () => { + openImageFromString(imageBase64, 'image/png'); + expect(openSpy).toHaveBeenCalledWith('blob:mock-url'); + }); + + it('openImageFromString embeds inline when newTab is false', () => { + openImageFromString(imageBase64, 'image/png', false); + expect(openSpy).not.toHaveBeenCalled(); + const img = document.body.querySelector('img'); + expect(img).not.toBeNull(); + expect(img?.src).toContain('blob:mock-url'); + }); + + it('handleOpenFile sets an error for invalid content', () => { + const setError = jest.fn(); + handleOpenFile({ content: null, contentType: 'application/pdf' } as any, setError); + expect(setError).toHaveBeenCalledWith('Invalid file type'); + expect(openSpy).not.toHaveBeenCalled(); + }); + + it('handleOpenFile opens a PDF for application/* content', () => { + const setError = jest.fn(); + handleOpenFile( + { + content: { type: 'Buffer', data: [1, 2, 3] }, + contentType: 'application/pdf', + } as any, + setError, + true, + ); + expect(setError).not.toHaveBeenCalled(); + expect(openSpy).toHaveBeenCalledWith('blob:mock-url'); + }); + + it('handleOpenFile opens an image for image/* content', () => { + const setError = jest.fn(); + handleOpenFile( + { + content: { type: 'Buffer', data: [9, 8, 7] }, + contentType: 'image/png', + } as any, + setError, + false, + ); + expect(setError).not.toHaveBeenCalled(); + expect(document.body.querySelector('img')).not.toBeNull(); + }); + + it('handleOpenFile does nothing for unsupported file types', () => { + const setError = jest.fn(); + handleOpenFile( + { + content: { type: 'Buffer', data: [1] }, + contentType: 'text/plain', + } as any, + setError, + ); + expect(setError).not.toHaveBeenCalled(); + expect(openSpy).not.toHaveBeenCalled(); + expect(document.body.querySelector('embed')).toBeNull(); + expect(document.body.querySelector('img')).toBeNull(); + }); + }); + + describe('sortAddressesByBlockchain', () => { + it('sorts by the first blockchain name', () => { + const a = { blockchains: ['Ethereum'] } as any; + const b = { blockchains: ['Bitcoin'] } as any; + expect(sortAddressesByBlockchain(a, b)).toBeGreaterThan(0); + expect(sortAddressesByBlockchain(b, a)).toBeLessThan(0); + expect(sortAddressesByBlockchain(a, a)).toBe(0); + }); }); describe('formatBytes', () => { @@ -218,6 +515,26 @@ describe('utils', () => { expect(formatBytes(1024)).toBe('1 KB'); expect(formatBytes(1024 * 1024)).toBe('1 MB'); }); + + it('clamps negative decimals to zero', () => { + expect(formatBytes(2048, -1)).toBe('2 KB'); + }); + }); + + describe('fetchJson', () => { + it('fetches and parses JSON', async () => { + const fetchMock = jest.fn().mockResolvedValue({ + json: jest.fn().mockResolvedValue({ ok: true }), + }); + const originalFetch = global.fetch; + global.fetch = fetchMock as any; + try { + await expect(fetchJson('https://example.com/data')).resolves.toEqual({ ok: true }); + expect(fetchMock).toHaveBeenCalledWith('https://example.com/data'); + } finally { + global.fetch = originalFetch; + } + }); }); describe('formatUnits', () => { @@ -226,6 +543,10 @@ describe('utils', () => { expect(formatUnits('1500000000000000000', 18)).toBe('1.5'); }); + it('defaults decimals to 18 when omitted', () => { + expect(formatUnits('1000000000000000000')).toBe('1'); + }); + it('should handle zero', () => { expect(formatUnits('0', 18)).toBe('0'); }); @@ -246,6 +567,55 @@ describe('utils', () => { it('should return undefined for missing header', () => { expect(extractFilename(undefined)).toBeUndefined(); }); + + it('should return undefined when the header has no filename match', () => { + expect(extractFilename('inline')).toBeUndefined(); + expect(extractFilename('attachment; size=12')).toBeUndefined(); + }); + }); + + describe('downloadFile', () => { + let createObjectURL: jest.Mock; + let revokeObjectURL: jest.Mock; + let clickSpy: jest.SpyInstance; + let clickedDownload: string | undefined; + + beforeEach(() => { + createObjectURL = jest.fn(() => 'blob:download'); + revokeObjectURL = jest.fn(); + (URL as any).createObjectURL = createObjectURL; + (URL as any).revokeObjectURL = revokeObjectURL; + clickedDownload = undefined; + // Capture download on the anchor while click runs — the element is removed right after. + clickSpy = jest.spyOn(HTMLAnchorElement.prototype, 'click').mockImplementation(function ( + this: HTMLAnchorElement, + ) { + clickedDownload = this.download; + }); + }); + + afterEach(() => { + delete (URL as any).createObjectURL; + delete (URL as any).revokeObjectURL; + clickSpy.mockRestore(); + document.body.innerHTML = ''; + }); + + it('uses content-disposition filename when present', () => { + downloadFile(new Blob(['x']), { 'content-disposition': 'attachment; filename="report.pdf"' }, 'fallback.bin'); + expect(clickSpy).toHaveBeenCalled(); + expect(clickedDownload).toBe('report.pdf'); + expect(revokeObjectURL).toHaveBeenCalledWith('blob:download'); + expect(document.body.querySelector('a')).toBeNull(); + }); + + it('falls back to the provided filename without content-disposition', () => { + downloadFile(new Blob(['x']), {}, 'fallback.bin'); + expect(createObjectURL).toHaveBeenCalled(); + expect(clickedDownload).toBe('fallback.bin'); + expect(revokeObjectURL).toHaveBeenCalledWith('blob:download'); + expect(document.body.querySelector('a')).toBeNull(); + }); }); describe('formatCurrency', () => { @@ -260,8 +630,52 @@ describe('utils', () => { expect(formatCurrency(1234.56, 2, 2, FormatType.US)).toBe('1,234.56'); }); + it('parses string amounts and defaults to Swiss format', () => { + const result = formatCurrency('12.5', 2, 2); + expect(result).toContain('12'); + }); + it('should return null for invalid values', () => { expect(formatCurrency(NaN)).toBeNull(); + expect(formatCurrency(null as unknown as number)).toBeNull(); + }); + + it('returns "< 0.01" for tiny positive amounts when fraction digits are allowed', () => { + expect(formatCurrency(0.005, 0, 2)).toBe('< 0.01'); + }); + + it('formats tiny positives normally when maximumFractionDigits is 0', () => { + // maximumFractionDigits falsy → skip the "< 0.01" shortcut + const result = formatCurrency(0.005, 0, 0, FormatType.US); + expect(result).not.toBe('< 0.01'); + }); + + it('formats TINY amounts under 1000 with two decimals and thin-space thousands separator above', () => { + const under = formatCurrency(12.5, 0, 2, FormatType.TINY); + expect(under).toBe('12.50'); + // en-US groups thousands with ",", then TINY replaces "," with thin space + const over = formatCurrency(1500, 0, 2, FormatType.TINY); + expect(over).toBe('1 500'); + const negativeOver = formatCurrency(-1500, 0, 2, FormatType.TINY); + expect(negativeOver).toBe('-1 500'); + const withSep = formatCurrency(12345, 0, 2, FormatType.TINY); + expect(withSep).toContain(' '); + expect(withSep?.replace(/\u2009/g, '')).toBe('12345'); + }); + + it('returns undefined for an unknown format enum value', () => { + // Covers the false branch of the final format === TINY check (fall-through). + expect(formatCurrency(1, 0, 2, 99 as FormatType)).toBeUndefined(); + }); + }); + + describe('formatAmountForDisplay', () => { + it('returns empty string without a value', () => { + expect(formatAmountForDisplay(undefined)).toBe(''); + }); + + it('formats via Utils.formatAmount and rewrites trailing .00', () => { + expect(formatAmountForDisplay(12)).toBe('12.-'); }); }); @@ -357,6 +771,22 @@ describe('utils', () => { it('should handle null and undefined', () => { expect(deepEqual(null, null)).toBe(true); expect(deepEqual(null, undefined)).toBe(false); + expect(deepEqual(undefined, undefined)).toBe(true); + expect(deepEqual({ a: 1 }, null)).toBe(false); + }); + + it('returns false for differing types, key sets, or missing keys', () => { + expect(deepEqual(1, '1')).toBe(false); + expect(deepEqual({ a: 1 }, { a: 1, b: 2 })).toBe(false); + expect(deepEqual({ a: 1 }, { b: 1 })).toBe(false); + expect(deepEqual({ a: { b: 1 } }, { a: { b: 2 } })).toBe(false); + }); + }); + + describe('isAsset', () => { + it('detects assets by chainId', () => { + expect(isAsset({ chainId: 1 } as any)).toBe(true); + expect(isAsset({ name: 'EUR' } as any)).toBe(false); }); }); @@ -369,6 +799,26 @@ describe('utils', () => { it('should return false for different strings', () => { expect(equalsIgnoreCase('abc', 'def')).toBe(false); }); + + it('handles undefined sides', () => { + expect(equalsIgnoreCase(undefined, undefined)).toBe(true); + expect(equalsIgnoreCase('a', undefined)).toBe(false); + expect(equalsIgnoreCase(undefined, 'a')).toBe(false); + }); + }); + + describe('findCustodyBalanceString', () => { + it('returns the formatted balance when the asset is found', () => { + const asset = { name: 'BTC' } as any; + const balances = [{ asset: { name: 'BTC' }, balance: 1.5 }] as any; + expect(findCustodyBalanceString(asset, balances)).toBe('1.5'); + }); + + it('returns empty string when the asset is missing', () => { + const asset = { name: 'ETH' } as any; + const balances = [{ asset: { name: 'BTC' }, balance: 1 }] as any; + expect(findCustodyBalanceString(asset, balances)).toBe(''); + }); }); describe('formatLocationAddress', () => { @@ -436,6 +886,15 @@ describe('utils', () => { const query = new URLSearchParams(result.slice(result.indexOf('?') + 1)); expect(query.get('issue-type')).toBe('LimitRequest'); }); + + it('delegates absolute paths to url()', () => { + const result = relativeUrl({ + path: 'https://example.com/callback', + params: new URLSearchParams({ a: '1' }), + }); + // url() normalizes base with a trailing slash + expect(result).toBe('https://example.com/callback/?a=1'); + }); }); describe('redirectAllowedParams', () => { From 049d199f575c38c365dfcd6ea20804708fead31a Mon Sep 17 00:00:00 2001 From: joshuakrueger-dfx Date: Fri, 7 Aug 2026 15:00:42 +0200 Subject: [PATCH 6/6] Show the mail deep-link flow in the handbook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The spec had no toHaveScreenshot at all, so the flow was absent from the handbook and handbook-check.yaml could not fire on it either: its path filter covers e2e/screenshots/** and not e2e/**, so a new spec file alone matches nothing. Two baselines, one per visual state a mail recipient goes through — the login the guard sends them to, and the settings screen with the Verification Call section the anchor scrolls to. The second opens settings with ?session= via getCachedAuth, the pattern login-process.spec.ts already uses; it shows the target UI, not the post-login hop, and the spec header says so. Handbook build with both files present: 180 screenshots, no orphan warning, title and description resolved from the new metadata.json entry. --- e2e/mail-deeplink-call-anchor.spec.ts | 29 +++++++++++++++++- ...s-01-login-before-auth-chromium-darwin.png | Bin 0 -> 152651 bytes ...ings-verification-call-chromium-darwin.png | Bin 0 -> 46027 bytes scripts/handbook/metadata.json | 4 +++ 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 e2e/screenshots/baseline/mail-deeplink-call-anchor.spec.ts-01-login-before-auth-chromium-darwin.png create mode 100644 e2e/screenshots/baseline/mail-deeplink-call-anchor.spec.ts-02-settings-verification-call-chromium-darwin.png diff --git a/e2e/mail-deeplink-call-anchor.spec.ts b/e2e/mail-deeplink-call-anchor.spec.ts index 94ea99f27..aa8802a78 100644 --- a/e2e/mail-deeplink-call-anchor.spec.ts +++ b/e2e/mail-deeplink-call-anchor.spec.ts @@ -1,4 +1,5 @@ import { expect, test } from '@playwright/test'; +import { getCachedAuth } from './helpers/auth-cache'; /** * Mail deep-link: customers open https://app.dfx.swiss/settings?a=call from the @@ -11,9 +12,13 @@ import { expect, test } from '@playwright/test'; * mail-login tile in the same SPA session and inspecting the signInWithMail * redirectUri payload (ConnectMail builds it from AppHandlingContext.redirectPath). * + * Authenticated state uses getCachedAuth (same pattern as login-process.spec.ts) + * so the settings screen can be opened with `?session=` without driving a real login + * — that shows the target UI (Verification Call section), not the post-login hop. + * * Does NOT cover: * - Completing wallet login and the post-login navigate(redirectPath) hop - * - Actual scroll-into-view of the Verification Call block on settings + * (that path is covered by unit tests on useNavigation / setRedirect, not here) * - Full magic-link mail login end-to-end */ test.describe('Mail deep-link a=call survives login redirect memory', () => { @@ -47,6 +52,12 @@ test.describe('Mail deep-link a=call survives login redirect memory', () => { // Guard must send unauthenticated users to login. await expect(page).toHaveURL(/\/login/, { timeout: 15000 }); + // State the mail recipient sees before authenticating. + await expect(page).toHaveScreenshot('01-login-before-auth.png', { + maxDiffPixels: 1000, + fullPage: true, + }); + // Same SPA session: open mail login so ConnectMail reads redirectPath. const mailTile = page.locator('img[src*="mail"]'); await expect(mailTile.first()).toBeVisible({ timeout: 15000 }); @@ -70,4 +81,20 @@ test.describe('Mail deep-link a=call survives login redirect memory', () => { expect(capturedRedirectUri).toContain('/settings'); expect(capturedRedirectUri).toContain('a=call'); }); + + test('authenticated /settings?a=call shows Verification Call section', async ({ page, request }) => { + const { token } = await getCachedAuth(request, 'evm'); + + await page.goto(`/settings?a=call&session=${token}`); + await page.waitForLoadState('networkidle'); + + // useAnchor scrolls the section into view after ~100 ms; require it visibly present. + const verificationCallHeading = page.getByRole('heading', { name: /Verification Call|Verifizierungsanruf/i }); + await expect(verificationCallHeading).toBeVisible({ timeout: 20000 }); + + await expect(page).toHaveScreenshot('02-settings-verification-call.png', { + maxDiffPixels: 1000, + fullPage: true, + }); + }); }); diff --git a/e2e/screenshots/baseline/mail-deeplink-call-anchor.spec.ts-01-login-before-auth-chromium-darwin.png b/e2e/screenshots/baseline/mail-deeplink-call-anchor.spec.ts-01-login-before-auth-chromium-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4c308382ca528e1728863bab17f7fdb807f0de GIT binary patch literal 152651 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%0AwMT8HztPwxy+VqhC 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%0D;v{u0jHxqP({aqkneTp3@888 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 z%0D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 AZ~y=R literal 0 HcmV?d00001 diff --git a/e2e/screenshots/baseline/mail-deeplink-call-anchor.spec.ts-02-settings-verification-call-chromium-darwin.png b/e2e/screenshots/baseline/mail-deeplink-call-anchor.spec.ts-02-settings-verification-call-chromium-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7cc076ada866b6f80355e32c05fadb5b996783 GIT binary patch literal 46027 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 Y`mW#zE>DvI{0F3|rt_%ep~buZ2ZkCSfB*mh literal 0 HcmV?d00001 diff --git a/scripts/handbook/metadata.json b/scripts/handbook/metadata.json index ffd402b3d..38e7bf215 100644 --- a/scripts/handbook/metadata.json +++ b/scripts/handbook/metadata.json @@ -107,6 +107,10 @@ "title": "Login-Prozess", "description": "Login und Home-Seite nach Authentifizierung." }, + "mail-deeplink-call-anchor": { + "title": "Mail-Deep-Link Verification Call", + "description": "Unangemeldeter Login nach /settings?a=call und Settings mit Verification-Call-Sektion nach Session." + }, "signature-login": { "title": "Signatur-Login", "description": "Wallet-Signatur-Login: Home, Buy, Sell, Settings, Transaktionen und Fehlerfall."