From: Chris Duncan Date: Mon, 3 Aug 2026 20:31:43 +0000 (-0700) Subject: Bypass user activation for automated testing with Node, else fail closed instead... X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=34ddcd0c0ee66832a6fa9a35a34de64cf6d4aa51;p=libnemo.git Bypass user activation for automated testing with Node, else fail closed instead of open. --- diff --git a/esbuild/config.mjs b/esbuild/config.mjs index 597f03a..a31112d 100644 --- a/esbuild/config.mjs +++ b/esbuild/config.mjs @@ -59,6 +59,7 @@ export const nodeOptions = { './esbuild/inject/fake-indexeddb.mjs' ], define: { + 'navigator.userActivation.isActive': 'true', 'VAULT_WORKER': nodeVaultWorker } } diff --git a/src/lib/block/sign.ts b/src/lib/block/sign.ts index cbb115b..959c0a9 100644 --- a/src/lib/block/sign.ts +++ b/src/lib/block/sign.ts @@ -6,7 +6,7 @@ import type { Block } from '.' import { Wallet } from '../wallet' export function _sign (block: Block, input: unknown, index: unknown, frontier: unknown): Block | Promise { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError' diff --git a/src/lib/tools.ts b/src/lib/tools.ts index b3e4b5b..c43066b 100644 --- a/src/lib/tools.ts +++ b/src/lib/tools.ts @@ -108,7 +108,7 @@ export function convert (amount: unknown, inputUnit: unknown, outputUnit: unknow * @returns {string} 64-byte hexadecimal signature */ export function sign (secretKey: string | ArrayBuffer | Bytes, input: string): string { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError' diff --git a/src/lib/wallet/sign.ts b/src/lib/wallet/sign.ts index cf1aa9d..f1c8089 100644 --- a/src/lib/wallet/sign.ts +++ b/src/lib/wallet/sign.ts @@ -9,7 +9,7 @@ import { Wallet } from '../wallet' export async function _signBlock (wallet: Wallet, vault: Vault, index: number, address: string, block: Block, frontier?: Block): Promise export async function _signBlock (wallet: Wallet, vault: Vault, index: unknown, address: unknown, block: unknown, frontier?: unknown): Promise { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError' @@ -53,7 +53,7 @@ export async function _signBlock (wallet: Wallet, vault: Vault, index: unknown, export async function _signData (wallet: Wallet, vault: Vault, index: number, address: string, data: string): Promise export async function _signData (wallet: Wallet, vault: Vault, index: unknown, address: unknown, data: unknown): Promise { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError'