From: Chris Duncan Date: Wed, 23 Jul 2025 21:23:07 +0000 (-0700) Subject: Typecheck test files. X-Git-Tag: v0.10.5~55^2~2 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=f92116f9d59923fa5a0876d2f1d1a6fd6777ebfb;p=libnemo.git Typecheck test files. --- diff --git a/src/types.d.ts b/src/types.d.ts index 5d945fd..adc548e 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -567,8 +567,8 @@ export declare abstract class Wallet { get id (): string get isLocked (): boolean get isUnlocked (): boolean - get mnemonic (): string | null - get seed (): string | null + get mnemonic (): string + get seed (): string constructor (id: Entropy, seed?: Uint8Array, mnemonic?: Bip39Mnemonic) /** * Retrieves an account from a wallet using its child key derivation function. diff --git a/test/perf.account.mjs b/test/perf.account.mjs index 15b2d82..ea6e18e 100644 --- a/test/perf.account.mjs +++ b/test/perf.account.mjs @@ -6,7 +6,14 @@ import { assert, isNode, stats, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Bip44Wallet, Blake2bWallet +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Blake2bWallet} +*/ +let Blake2bWallet if (isNode) { ({ Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js')) } else { diff --git a/test/perf.block.mjs b/test/perf.block.mjs index fa94473..ffadedb 100644 --- a/test/perf.block.mjs +++ b/test/perf.block.mjs @@ -6,6 +6,9 @@ import { isNode, stats, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' +/** +* @type {typeof import('../dist/types.d.ts').SendBlock} +*/ let SendBlock if (isNode) { ({ SendBlock } = await import('../dist/nodejs.min.js')) diff --git a/test/perf.wallet.mjs b/test/perf.wallet.mjs index 20c2d7e..9568271 100644 --- a/test/perf.wallet.mjs +++ b/test/perf.wallet.mjs @@ -6,7 +6,14 @@ import { isNode, stats, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Bip44Wallet, Blake2bWallet +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Blake2bWallet} +*/ +let Blake2bWallet if (isNode) { ({ Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js')) } else { diff --git a/test/test.blake2b.mjs b/test/test.blake2b.mjs index 626589b..ee19f6e 100644 --- a/test/test.blake2b.mjs +++ b/test/test.blake2b.mjs @@ -6,6 +6,9 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { BLAKE2B_TEST_VECTORS } from './VECTORS.mjs' +/** +* @type {typeof import('../dist/types.d.ts').Blake2b} +*/ let Blake2b if (isNode) { ({ Blake2b } = await import('../dist/nodejs.min.js')) @@ -100,6 +103,7 @@ await Promise.all([ suite('BLAKE2b exceptions', async () => { await test('invalid output lengths', async () => { + //@ts-expect-error assert.throws(() => new Blake2b()) assert.throws(() => new Blake2b(null)) assert.throws(() => new Blake2b(true)) @@ -112,9 +116,13 @@ await Promise.all([ await test('invalid input data', async () => { const blake2b = new Blake2b(64) + //@ts-expect-error assert.throws(() => blake2b.update(null)) + //@ts-expect-error assert.throws(() => blake2b.update(true)) + //@ts-expect-error assert.throws(() => blake2b.update('a')) + //@ts-expect-error assert.throws(() => blake2b.update(1)) }) }) diff --git a/test/test.blocks.mjs b/test/test.blocks.mjs index a4e58ae..bc1804a 100644 --- a/test/test.blocks.mjs +++ b/test/test.blocks.mjs @@ -6,11 +6,22 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let SendBlock, ReceiveBlock, ChangeBlock +/** +* @type {typeof import('../dist/types.d.ts').ChangeBlock} +*/ +let ChangeBlock +/** +* @type {typeof import('../dist/types.d.ts').ReceiveBlock} +*/ +let ReceiveBlock +/** +* @type {typeof import('../dist/types.d.ts').SendBlock} +*/ +let SendBlock if (isNode) { - ({ SendBlock, ReceiveBlock, ChangeBlock } = await import('../dist/nodejs.min.js')) + ({ ChangeBlock, ReceiveBlock, SendBlock } = await import('../dist/nodejs.min.js')) } else { - ({ SendBlock, ReceiveBlock, ChangeBlock } = await import('../dist/browser.min.js')) + ({ ChangeBlock, ReceiveBlock, SendBlock } = await import('../dist/browser.min.js')) } await Promise.all([ @@ -183,6 +194,7 @@ await Promise.all([ await assert.rejects(block.sign()) assert.nullish(block.signature) + //@ts-expect-error await assert.rejects(block.sign(null)) assert.nullish(block.signature) await assert.rejects(block.sign('1')) diff --git a/test/test.calculate-pow.mjs b/test/test.calculate-pow.mjs index a7f35d8..187938b 100644 --- a/test/test.calculate-pow.mjs +++ b/test/test.calculate-pow.mjs @@ -6,7 +6,14 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Blake2b, SendBlock +/** +* @type {typeof import('../dist/types.d.ts').Blake2b} +*/ +let Blake2b +/** +* @type {typeof import('../dist/types.d.ts').SendBlock} +*/ +let SendBlock if (isNode) { ({ Blake2b, SendBlock } = await import('../dist/nodejs.min.js')) } else { diff --git a/test/test.create-wallet.mjs b/test/test.create-wallet.mjs index ff2a486..35ed16e 100644 --- a/test/test.create-wallet.mjs +++ b/test/test.create-wallet.mjs @@ -6,7 +6,14 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Bip44Wallet, Blake2bWallet +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Blake2bWallet} +*/ +let Blake2bWallet if (isNode) { ({ Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js')) } else { @@ -22,8 +29,8 @@ await Promise.all([ assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.rejects(wallet.unlock(NANO_TEST_VECTORS.PASSWORD)) }) @@ -59,6 +66,7 @@ await Promise.all([ await test('BIP-44 replace invalid salt with empty string', async () => { const invalidArgs = [null, true, false, 0, 1, 2, { foo: 'bar' }] for (const arg of invalidArgs) { + //@ts-expect-error const wallet = Bip44Wallet.create(NANO_TEST_VECTORS.PASSWORD, arg) await assert.resolves(wallet) await assert.resolves((await wallet).destroy()) @@ -66,12 +74,16 @@ await Promise.all([ }) await test('fail when using new', async () => { + //@ts-expect-error assert.throws(() => new Bip44Wallet()) + //@ts-expect-error assert.throws(() => new Blake2bWallet()) }) await test('fail without a password', async () => { + //@ts-expect-error await assert.rejects(Bip44Wallet.create()) + //@ts-expect-error await assert.rejects(Blake2bWallet.create()) }) }) diff --git a/test/test.derive-accounts.mjs b/test/test.derive-accounts.mjs index fb6428a..29eb02e 100644 --- a/test/test.derive-accounts.mjs +++ b/test/test.derive-accounts.mjs @@ -6,7 +6,14 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Bip44Wallet, Blake2bWallet +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Blake2bWallet} +*/ +let Blake2bWallet if (isNode) { ({ Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js')) } else { diff --git a/test/test.import-wallet.mjs b/test/test.import-wallet.mjs index b160491..ef41612 100644 --- a/test/test.import-wallet.mjs +++ b/test/test.import-wallet.mjs @@ -6,7 +6,18 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { BIP32_TEST_VECTORS, CUSTOM_TEST_VECTORS, NANO_TEST_VECTORS, TREZOR_TEST_VECTORS } from './VECTORS.mjs' -let Account, Bip44Wallet, Blake2bWallet +/** +* @type {typeof import('../dist/types.d.ts').Account} +*/ +let Account +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Blake2bWallet} +*/ +let Blake2bWallet if (isNode) { ({ Account, Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js')) } else { @@ -43,7 +54,7 @@ await Promise.all([ assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) assert.ok(account instanceof Account) - assert.nullish(wallet.mnemonic) + assert.throws(() => wallet.mnemonic) assert.equal(wallet.seed, NANO_TEST_VECTORS.BIP39_SEED) assert.equal(account.publicKey, NANO_TEST_VECTORS.PUBLIC_0) assert.equal(account.address, NANO_TEST_VECTORS.ADDRESS_0) @@ -257,8 +268,8 @@ await Promise.all([ assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) const unlockResult = await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) @@ -277,8 +288,8 @@ await Promise.all([ assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) const unlockResult = await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) diff --git a/test/test.ledger.mjs b/test/test.ledger.mjs index 0398073..c4ae355 100644 --- a/test/test.ledger.mjs +++ b/test/test.ledger.mjs @@ -6,7 +6,27 @@ import { assert, click, env, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Account, LedgerWallet, ReceiveBlock, Rpc, SendBlock +/** +* @type {typeof import('../dist/types.d.ts').Account} +*/ +let Account +/** +* @type {typeof import('../dist/types.d.ts').LedgerWallet} +*/ +let LedgerWallet +/** +* @type {typeof import('../dist/types.d.ts').ReceiveBlock} +*/ +let ReceiveBlock +/** +* @type {typeof import('../dist/types.d.ts').Rpc} +*/ +let Rpc +/** +* @type {typeof import('../dist/types.d.ts').SendBlock} +*/ +let SendBlock + if (isNode) { ({ Account, LedgerWallet, ReceiveBlock, Rpc, SendBlock } = await import('../dist/nodejs.min.js')) } else { @@ -122,7 +142,8 @@ await Promise.all([ await openBlock.sign(0) - assert.ok(/^[A-Fa-f0-9]{128}$/.test(openBlock.signature)) + assert.exists(openBlock.signature) + assert.ok(/^[A-Fa-f0-9]{128}$/.test(openBlock.signature ?? '')) assert.equal(signature, openBlock.signature) }) @@ -170,7 +191,8 @@ await Promise.all([ await receiveBlock.sign(0, sendBlock) - assert.ok(/^[A-Fa-f0-9]{128}$/.test(receiveBlock.signature)) + assert.exists(receiveBlock.signature) + assert.ok(/^[A-Fa-f0-9]{128}$/.test(receiveBlock.signature ?? '')) }) // nonce signing is currently broken: https://github.com/LedgerHQ/app-nano/pull/14 @@ -188,6 +210,7 @@ await Promise.all([ }) await test('fail when using new', async () => { + //@ts-expect-error assert.throws(() => new LedgerWallet()) }) diff --git a/test/test.lock-unlock.mjs b/test/test.lock-unlock.mjs index 7222b50..31f258d 100644 --- a/test/test.lock-unlock.mjs +++ b/test/test.lock-unlock.mjs @@ -6,11 +6,22 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS, TREZOR_TEST_VECTORS } from './VECTORS.mjs' -let Bip44Wallet, Blake2bWallet +/** +* @type {typeof import('../dist/types.d.ts').Account} +*/ +let Account +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Blake2bWallet} +*/ +let Blake2bWallet if (isNode) { - ({ Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js')) + ({ Account, Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js')) } else { - ({ Bip44Wallet, Blake2bWallet } = await import('../dist/browser.min.js')) + ({ Account, Bip44Wallet, Blake2bWallet } = await import('../dist/browser.min.js')) } await Promise.all([ @@ -21,8 +32,8 @@ await Promise.all([ assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) const unlockResult = await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) @@ -44,8 +55,8 @@ await Promise.all([ assert.ok(lockResult) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) const unlockResult = await wallet.unlock(new Uint8Array(key)) @@ -84,8 +95,8 @@ await Promise.all([ assert.equal(lockResult, true) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -101,8 +112,8 @@ await Promise.all([ assert.equal(lockResult, true) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -114,8 +125,8 @@ await Promise.all([ await assert.rejects(wallet.unlock(new Uint8Array(key)), { message: 'Failed to unlock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -124,6 +135,7 @@ await Promise.all([ const wallet = await Bip44Wallet.fromMnemonic(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD) await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.lock(), { message: 'Failed to lock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) @@ -132,11 +144,12 @@ await Promise.all([ await wallet.lock('password') + //@ts-expect-error await assert.rejects(wallet.unlock(), { message: 'Failed to unlock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -145,6 +158,7 @@ await Promise.all([ const wallet = await Bip44Wallet.fromMnemonic(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD) await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.lock(1), { message: 'Failed to lock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) @@ -153,11 +167,12 @@ await Promise.all([ await wallet.lock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.unlock(1), { message: 'Failed to unlock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -167,8 +182,8 @@ await Promise.all([ assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) const unlockResult = await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) @@ -190,8 +205,8 @@ await Promise.all([ assert.equal(lockResult, true) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) const unlockResult = await wallet.unlock(new Uint8Array(key)) @@ -228,8 +243,8 @@ await Promise.all([ await assert.rejects(wallet.unlock(TREZOR_TEST_VECTORS.PASSWORD), { message: 'Failed to unlock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -245,8 +260,8 @@ await Promise.all([ assert.equal(lockResult, true) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -258,8 +273,8 @@ await Promise.all([ await assert.rejects(wallet.unlock(new Uint8Array(key)), { message: 'Failed to unlock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -268,6 +283,7 @@ await Promise.all([ const wallet = await Blake2bWallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_1) await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.lock(), { message: 'Failed to lock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) @@ -276,11 +292,12 @@ await Promise.all([ await wallet.lock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.unlock(), { message: 'Failed to unlock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) @@ -289,6 +306,7 @@ await Promise.all([ const wallet = await Blake2bWallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_1) await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.lock(1), { message: 'Failed to lock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) @@ -297,11 +315,12 @@ await Promise.all([ await wallet.lock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.unlock(1), { message: 'Failed to unlock wallet' }) assert.ok('mnemonic' in wallet) assert.ok('seed' in wallet) - assert.nullish(wallet.mnemonic) - assert.nullish(wallet.seed) + assert.throws(() => wallet.mnemonic) + assert.throws(() => wallet.seed) await assert.resolves(wallet.destroy()) }) diff --git a/test/test.manage-rolodex.mjs b/test/test.manage-rolodex.mjs index 43419fc..e0b8c75 100644 --- a/test/test.manage-rolodex.mjs +++ b/test/test.manage-rolodex.mjs @@ -6,7 +6,14 @@ import { assert, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Rolodex, Tools +/** +* @type {typeof import('../dist/types.d.ts').Rolodex} +*/ +let Rolodex +/** +* @type {import('../dist/types.d.ts').Tools} +*/ +let Tools if (isNode) { ({ Rolodex, Tools } = await import('../dist/nodejs.min.js')) } else { diff --git a/test/test.refresh-accounts.mjs b/test/test.refresh-accounts.mjs index f3ba139..3b149dc 100644 --- a/test/test.refresh-accounts.mjs +++ b/test/test.refresh-accounts.mjs @@ -6,7 +6,18 @@ import { assert, env, isNode, suite, test } from './GLOBALS.mjs' import { NANO_TEST_VECTORS } from './VECTORS.mjs' -let Account, Bip44Wallet, Rpc +/** +* @type {typeof import('../dist/types.d.ts').Account} +*/ +let Account +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Rpc} +*/ +let Rpc if (isNode) { ({ Account, Bip44Wallet, Rpc } = await import('../dist/nodejs.min.js')) } else { @@ -27,16 +38,17 @@ await Promise.all([ assert.exists(account.balance) assert.notEqual(account.balance, '') assert.equal(typeof account.balance, 'bigint') + //@ts-expect-error assert.ok(account.balance >= 0) assert.exists(account.frontier) assert.equal(typeof account.frontier, 'string') assert.notEqual(account.frontier, '') - assert.ok(/^[A-Fa-f0-9]{64}$/.test(account.frontier)) + assert.ok(/^[A-Fa-f0-9]{64}$/.test(account.frontier ?? '')) assert.exists(account.representative) assert.notEqual(account.representative, '') - assert.equal(account.representative.constructor, Account) + assert.equal(account.representative?.constructor, Account) assert.exists(account.representative?.address) assert.notEqual(account.representative?.address, '') @@ -119,10 +131,15 @@ await Promise.all([ const wallet = await Bip44Wallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED) await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.unopened()) + //@ts-expect-error await assert.rejects(wallet.unopened(null)) + //@ts-expect-error await assert.rejects(wallet.unopened(1)) + //@ts-expect-error await assert.rejects(wallet.unopened('')) + //@ts-expect-error await assert.rejects(wallet.unopened('foo')) await assert.resolves(wallet.destroy()) @@ -132,10 +149,14 @@ await Promise.all([ const wallet = await Bip44Wallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED) await wallet.unlock(NANO_TEST_VECTORS.PASSWORD) + //@ts-expect-error await assert.rejects(wallet.unopened(rpc, null)) await assert.rejects(wallet.unopened(rpc, -1)) + //@ts-expect-error await assert.rejects(wallet.unopened(rpc, '')) + //@ts-expect-error await assert.rejects(wallet.unopened(rpc, 'foo')) + //@ts-expect-error await assert.rejects(wallet.unopened(rpc, { 'foo': 'bar' })) await assert.resolves(wallet.destroy()) diff --git a/test/test.tools.mjs b/test/test.tools.mjs index c331859..db72666 100644 --- a/test/test.tools.mjs +++ b/test/test.tools.mjs @@ -6,7 +6,26 @@ import { assert, env, isNode, suite, test } from './GLOBALS.mjs' import { RAW_MAX, NANO_TEST_VECTORS } from './VECTORS.mjs' -let Account, Bip44Wallet, Rpc, SendBlock, Tools +/** +* @type {typeof import('../dist/types.d.ts').Account} +*/ +let Account +/** +* @type {typeof import('../dist/types.d.ts').Bip44Wallet} +*/ +let Bip44Wallet +/** +* @type {typeof import('../dist/types.d.ts').Rpc} +*/ +let Rpc +/** +* @type {typeof import('../dist/types.d.ts').SendBlock} +*/ +let SendBlock +/** +* @type {typeof import('../dist/types.d.ts').Tools} +*/ +let Tools if (isNode) { ({ Account, Bip44Wallet, Rpc, SendBlock, Tools } = await import('../dist/nodejs.min.js')) } else { @@ -146,6 +165,7 @@ await Promise.all([ }) await test('sweeper throws without required parameters', async () => { + //@ts-expect-error await assert.rejects(Tools.sweep(), 'Missing required sweep arguments') })