UNPKG

@bsv/wallet-toolbox

Version:

BRC100 conforming wallet, wallet storage and wallet signer components

91 lines 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const TestUtilsWalletStorage_1 = require("../utils/TestUtilsWalletStorage"); const sdk_1 = require("@bsv/sdk"); describe('LocalKVStore tests', () => { jest.setTimeout(99999999); const testName = () => expect.getState().currentTestName || 'test'; let ctxs = []; const context = 'test kv store'; const key1 = 'key1'; const key2 = 'key2'; beforeEach(async () => { ctxs = [await TestUtilsWalletStorage_1._tu.createLegacyWalletSQLiteCopy(`${testName()}`)]; }); afterEach(async () => { for (const ctx of ctxs) { await ctx.storage.destroy(); } }); test('0 get non-existent', async () => { for (const { storage, wallet } of ctxs) { const kvStore = new sdk_1.LocalKVStore(wallet, context, false, undefined, true); const value = await kvStore.get(key1); expect(value).toBeUndefined(); } }); test('1 set get', async () => { for (const { storage, wallet } of ctxs) { const kvStore = new sdk_1.LocalKVStore(wallet, context, false, undefined, true); await kvStore.set(key1, 'value1'); const value = await kvStore.get(key1); expect(value).toBe('value1'); } }); test('3 set x 4 get', async () => { for (const { storage, wallet } of ctxs) { const kvStore = new sdk_1.LocalKVStore(wallet, context, false, undefined, true); const promises = [ kvStore.set(key1, 'value1'), kvStore.set(key1, 'value2'), kvStore.set(key1, 'value3'), kvStore.set(key1, 'value4') ]; await Promise.all(promises); const value = await kvStore.get(key1); expect(value).toBe('value4'); } }); test('4 promise test', async () => { jest.useFakeTimers(); let resolveNewLock = () => { }; const newLock = new Promise(resolve => { resolveNewLock = resolve; }); const t = Date.now(); setTimeout(() => { resolveNewLock(); }, 1000); jest.advanceTimersByTime(1000); await newLock; const elapsed = Date.now() - t; (0, TestUtilsWalletStorage_1.logger)(`Elapsed time: ${elapsed} ms`); expect(elapsed).toBeGreaterThanOrEqual(1000); jest.useRealTimers(); }); test('5 set x 4 get set x 4 get', async () => { for (const { storage, wallet } of ctxs) { const kvStore = new sdk_1.LocalKVStore(wallet, context, false, undefined, true); let v4; async function captureValue() { v4 = await kvStore.get(key1); } const promises = [ kvStore.set(key1, 'value1'), kvStore.set(key1, 'value2'), kvStore.set(key1, 'value3'), kvStore.set(key1, 'value4'), captureValue(), kvStore.set(key1, 'value5'), kvStore.set(key1, 'value6'), kvStore.set(key1, 'value7'), kvStore.set(key1, 'value8') ]; await Promise.all(promises); const v8 = await kvStore.get(key1); expect(v4).toBe('value4'); expect(v8).toBe('value8'); } }); }); //# sourceMappingURL=LocalKVStore.test.js.map