]> zoso.dev Git - libnemo.git/commitdiff
Move polyfills into separate file from test vectors, and redesign them as side effect...
authorChris Duncan <chris@zoso.dev>
Mon, 11 Nov 2024 09:27:33 +0000 (01:27 -0800)
committerChris Duncan <chris@zoso.dev>
Mon, 11 Nov 2024 09:27:33 +0000 (01:27 -0800)
test/GLOBALS.js [new file with mode: 0644]
test/TEST_VECTORS.js
test/create-wallet.test.mjs
test/derive-accounts.test.mjs
test/import-wallet.test.mjs
test/lock-unlock-wallet.mjs
test/manage-rolodex.mjs
test/refresh-accounts.test.mjs
test/sign-blocks.test.mjs
test/tools.test.mjs

diff --git a/test/GLOBALS.js b/test/GLOBALS.js
new file mode 100644 (file)
index 0000000..fa1af78
--- /dev/null
@@ -0,0 +1,23 @@
+// SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+import { Worker } from 'node:worker_threads'
+
+globalThis.Worker ??= Worker
+globalThis.Worker.onmessage ??= (handler) => Worker.prototype.on('message', handler)
+globalThis.onmessage ??= (handler) => EventTarget.prototype.addEventListener('message', handler)
+
+if (globalThis.sessionStorage == null) {
+       const _sessionStorage = {}
+       Object.defineProperty(globalThis, 'sessionStorage', {
+               value: {
+                       length: Object.entries(_sessionStorage).length,
+                       setItem: (key, value) => _sessionStorage[key] = value,
+                       getItem: (key) => _sessionStorage[key],
+                       removeItem: (key) => delete _sessionStorage[key],
+                       clear: () => _sessionStorage = {}
+               },
+               configurable: true,
+               enumerable: true
+       })
+}
index b2c17107e9fb41739e2981663aebf9c63ce66d14..32bfdf965508ab396c5a396f52154d4989dd7690 100644 (file)
@@ -1,23 +1,6 @@
 // SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>
 // SPDX-License-Identifier: GPL-3.0-or-later
 
-export const STORAGE = (() => {
-       if (globalThis.sessionStorage == null) {
-               const _sessionStorage = {}
-               Object.defineProperty(globalThis, 'sessionStorage', {
-                       value: {
-                               length: Object.entries(_sessionStorage).length,
-                               setItem: (key, value) => _sessionStorage[key] = value,
-                               getItem: (key) => _sessionStorage[key],
-                               removeItem: (key) => delete _sessionStorage[key],
-                               clear: () => _sessionStorage = {}
-                       },
-                       configurable: true,
-                       enumerable: true
-               })
-       }
-})()
-
 export const GENESIS_ADDRESS = 'nano_3t6k35gi95xu6tergt6p69ck76ogmitsa8mnijtpxm9fkcm736xtoncuohr3'
 export const RAW_MAX = '340282366920938463463374607431768211455'
 export const SUPPLY_MAX = '133248297920938463463374607431768211455'
index 583e5dfe161197645e973050d8a3134e64772368..b9e576f8431c27c87ee68725188b9a9a51650ddf 100644 (file)
@@ -3,9 +3,10 @@
 \r
 'use strict'\r
 \r
+import './GLOBALS.js'\r
 import { describe, it } from 'node:test'\r
 import { strict as assert } from 'assert'\r
-import { NANO_TEST_VECTORS, STORAGE, TREZOR_TEST_VECTORS } from './TEST_VECTORS.js'\r
+import { NANO_TEST_VECTORS, TREZOR_TEST_VECTORS } from './TEST_VECTORS.js'\r
 import { Account, Bip44Wallet, Blake2bWallet, LedgerWallet } from '../dist/main.js'\r
 \r
 // WARNING: Do not send any funds to the test vectors below\r
index 0765017d555a793e2a72d8537789a0b5406986c4..076a560827b550d21354fb794185a96dbff273f5 100644 (file)
@@ -3,9 +3,10 @@
 \r
 'use strict'\r
 \r
+import './GLOBALS.js'\r
 import { describe, it } from 'node:test'\r
 import { strict as assert } from 'assert'\r
-import { NANO_TEST_VECTORS, STORAGE } from './TEST_VECTORS.js'\r
+import { NANO_TEST_VECTORS } from './TEST_VECTORS.js'\r
 import { Bip44Wallet, Blake2bWallet, LedgerWallet } from '../dist/main.js'\r
 \r
 const skip = true\r
index 7fd35f084e0c6daefc40b4517f5c38bfaf50c32b..91f1d0723b456a752a298745c3bcf2808ebcbdd2 100644 (file)
@@ -3,9 +3,10 @@
 \r
 'use strict'\r
 \r
+import './GLOBALS.js'\r
 import { describe, it } from 'node:test'\r
 import { strict as assert } from 'assert'\r
-import { BIP32_TEST_VECTORS, CUSTOM_TEST_VECTORS, NANO_TEST_VECTORS, STORAGE, TREZOR_TEST_VECTORS } from './TEST_VECTORS.js'\r
+import { BIP32_TEST_VECTORS, CUSTOM_TEST_VECTORS, NANO_TEST_VECTORS, TREZOR_TEST_VECTORS } from './TEST_VECTORS.js'\r
 import { Account, Bip44Wallet, Blake2bWallet } from '../dist/main.js'\r
 \r
 // WARNING: Do not send any funds to the test vectors below\r
index d8c3dab24a53d31f680efea20b5c70e0bf6430a7..e09f1d908eec4d2b7ea26fa819ad6cd411b1d84d 100644 (file)
@@ -3,9 +3,10 @@
 \r
 'use strict'\r
 \r
+import './GLOBALS.js'\r
 import { describe, it } from 'node:test'\r
 import { strict as assert } from 'assert'\r
-import { NANO_TEST_VECTORS, STORAGE, TREZOR_TEST_VECTORS } from './TEST_VECTORS.js'\r
+import { NANO_TEST_VECTORS, TREZOR_TEST_VECTORS } from './TEST_VECTORS.js'\r
 import { Bip44Wallet, Blake2bWallet } from '../dist/main.js'\r
 \r
 const skip = false\r
index bcaff1a867168f485f7cfe0fb5e3f4d574d179a3..8f666a03235eba95d0d38577e05b6b91d5916912 100644 (file)
@@ -3,6 +3,7 @@
 
 'use strict'
 
+import './GLOBALS.js'
 import { describe, it } from 'node:test'
 import { strict as assert } from 'assert'
 import { Rolodex, Tools } from '../dist/main.js'
index 3983e67516ad14d9a6c239239a26131d9de01b49..fe26e7b03af5a37ee3f386be2cf9bf3e0fc0dee3 100644 (file)
@@ -3,9 +3,10 @@
 
 'use strict'
 
+import './GLOBALS.js'
 import { describe, it } from 'node:test'
 import { strict as assert } from 'assert'
-import { NANO_TEST_VECTORS, STORAGE } from './TEST_VECTORS.js'
+import { NANO_TEST_VECTORS } from './TEST_VECTORS.js'
 import { Account, Bip44Wallet, Rpc } from '../dist/main.js'
 
 // WARNING: Do not send any funds to the test vectors below
index a02a9c2c680b5f42aa6e591f3943e7a00bd8c915..1df9b21650889dc1828a373cdb636c6ef0cfaa9e 100644 (file)
@@ -3,10 +3,11 @@
 \r
 'use strict'\r
 \r
+import './GLOBALS.js'\r
 import { describe, it } from 'node:test'\r
 import { strict as assert } from 'assert'\r
-import { SendBlock, ReceiveBlock, ChangeBlock } from '../dist/main.js'\r
 import { NANO_TEST_VECTORS } from './TEST_VECTORS.js'\r
+import { SendBlock, ReceiveBlock, ChangeBlock } from '../dist/main.js'\r
 \r
 // WARNING: Do not send any funds to the test vectors below\r
 // Test vectors from https://docs.nano.org/integration-guides/key-management/\r
index 1d11666beb2b2bcfc5dc8ef6b2b6f458ad6951c9..48ba1d5d8b028fc1585bb18857acfeb20bfc983a 100644 (file)
@@ -3,9 +3,10 @@
 \r
 'use strict'\r
 \r
+import './GLOBALS.js'\r
 import { describe, it } from 'node:test'\r
 import { strict as assert } from 'assert'\r
-import { RAW_MAX, NANO_TEST_VECTORS, STORAGE } from './TEST_VECTORS.js'\r
+import { RAW_MAX, NANO_TEST_VECTORS } from './TEST_VECTORS.js'\r
 import { Bip44Wallet, Account, SendBlock, Rpc, Tools } from '../dist/main.js'\r
 \r
 const skip = true\r