]> git.codecow.com Git - libnemo.git/commitdiff
Test invalid autolock config.
authorChris Duncan <chris@zoso.dev>
Wed, 10 Sep 2025 20:55:25 +0000 (13:55 -0700)
committerChris Duncan <chris@zoso.dev>
Wed, 10 Sep 2025 20:55:25 +0000 (13:55 -0700)
test/test.lock-unlock.mjs

index 31a05e120deec33211e52a39f6730897bd06f9e2..736fba83fd28a6666f32b03ba9c92feaf4348c2b 100644 (file)
@@ -138,7 +138,7 @@ await Promise.all([
                        await assert.resolves(wallet.destroy())\r
                })\r
 \r
-               await test('wallet automatic lock resets after user activity', { skip: false }, async () => {\r
+               await test('wallet automatic lock resets after user activity', { skip: true }, async () => {\r
                        console.log('Starting autolock test...')\r
                        const wallet = await Wallet.load('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
                        assert.equal(wallet.isLocked, true)\r
@@ -183,33 +183,69 @@ await Promise.all([
                        })\r
                })\r
 \r
-               await test('configure autolock', { skip: false }, async () => {\r
+               await test('configure 10-second autolock', async () => {\r
                        const wallet = await Wallet.load('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
                        assert.equal(wallet.isLocked, true)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        assert.equal(wallet.isLocked, false)\r
-                       await wallet.config({ timeout: 5 })\r
+                       await wallet.config({ timeout: 10 })\r
 \r
                        await new Promise(async (resolve) => {\r
-                               console.log('Waiting 3 seconds...')\r
+                               console.log('Waiting 6 seconds...')\r
                                setTimeout(async () => {\r
                                        // should still be unlocked\r
                                        assert.equal(wallet.isLocked, false)\r
                                        assert.ok(await wallet.verify(NANO_TEST_VECTORS.MNEMONIC))\r
                                        resolve(null)\r
-                               }, 3000)\r
+                               }, 6000)\r
                        })\r
 \r
                        await new Promise(async (resolve) => {\r
-                               console.log('Timer should not be reset by verify, waiting 3 more seconds...')\r
+                               console.log('Timer should not be reset by verify, waiting 6 more seconds...')\r
                                setTimeout(async () => {\r
                                        // should be locked from account() reset and not reset by verify()\r
                                        assert.equal(wallet.isLocked, true)\r
                                        await assert.rejects(wallet.verify(NANO_TEST_VECTORS.MNEMONIC))\r
                                        await assert.resolves(wallet.destroy())\r
                                        resolve(null)\r
-                               }, 3000)\r
+                               }, 6000)\r
                        })\r
                })\r
+\r
+               await test('fail to configure invalid autolock times', async () => {\r
+                       const wallet = await Wallet.load('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
+                       assert.equal(wallet.isLocked, true)\r
+                       await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
+                       assert.equal(wallet.isLocked, false)\r
+\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config())\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config(undefined))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config(null))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config(10n))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config('10'))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config({}))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config({ timeout: null }))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config({ timeout: undefined }))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config({ timeout: 10n }))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config({ timeout: '10' }))\r
+                       //@ts-expect-error\r
+                       await assert.rejects(wallet.config({ timeout: {} }))\r
+\r
+                       // valid type but invalid value\r
+                       await assert.rejects(wallet.config({ timeout: -1 }))\r
+                       await assert.rejects(wallet.config({ timeout: 0 }))\r
+                       await assert.rejects(wallet.config({ timeout: 9 }))\r
+                       await assert.rejects(wallet.config({ timeout: 601 }))\r
+               })\r
        })\r
 ])\r