@bsv/wallet-toolbox
Version:
BRC100 conforming wallet, wallet storage and wallet signer components
56 lines • 2.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const knex_1 = require("knex");
const BulkIngestorCDNBabbage_1 = require("../BulkIngestorCDNBabbage");
const ChaintracksFetch_1 = require("../../util/ChaintracksFetch");
const ChaintracksFs_1 = require("../../util/ChaintracksFs");
const HeightRange_1 = require("../../util/HeightRange");
const ChaintracksStorageKnex_1 = require("../../Storage/ChaintracksStorageKnex");
const BulkFilesReader_1 = require("../../util/BulkFilesReader");
const rootFolder = './src/services/chaintracker/chaintracks/__tests/data';
const fs = ChaintracksFs_1.ChaintracksFs;
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
describe('BulkIngestorCDNBabbage tests', () => {
jest.setTimeout(99999999);
let logSpy, capturedLogs = [];
beforeAll(async () => {
logSpy = jest.spyOn(console, 'log').mockImplementation((...args) => {
capturedLogs.push(args.map(String).join(' '));
});
});
test('0 mainNet', async () => {
var _a;
const { cdn, r } = await testUpdateLocalCache('main', '0');
expect((_a = cdn.availableBulkFiles) === null || _a === void 0 ? void 0 : _a.files.length).toBeGreaterThan(8);
expect(r.liveHeaders.length).toBe(0);
expect(r.reader.range.minHeight).toBe(0);
expect(r.reader.range.maxHeight).toBeGreaterThan(800000);
});
test('1 testNet', async () => {
var _a;
const { cdn, r } = await testUpdateLocalCache('test', '1');
expect((_a = cdn.availableBulkFiles) === null || _a === void 0 ? void 0 : _a.files.length).toBeGreaterThan(15);
expect(r.liveHeaders.length).toBe(0);
expect(r.reader.range.minHeight).toBe(0);
expect(r.reader.range.maxHeight).toBeGreaterThan(1500000);
});
});
async function testUpdateLocalCache(chain, test) {
const bulkCDNOptions = BulkIngestorCDNBabbage_1.BulkIngestorCDNBabbage.createBulkIngestorCDNBabbageOptions(chain, fetch);
const cdn = new BulkIngestorCDNBabbage_1.BulkIngestorCDNBabbage(bulkCDNOptions);
const localSqlite = {
client: 'better-sqlite3',
connection: { filename: fs.pathJoin(rootFolder, `BulkIngestorCDNBabbage.test_${test}.sqlite`) },
useNullAsDefault: true
};
const knexOptions = ChaintracksStorageKnex_1.ChaintracksStorageKnex.createStorageKnexOptions(chain, (0, knex_1.knex)(localSqlite));
const storage = new ChaintracksStorageKnex_1.ChaintracksStorageKnex(knexOptions);
const before = await storage.getAvailableHeightRanges();
await cdn.setStorage(storage, console.log);
const range = new HeightRange_1.HeightRange(0, 9900000);
const liveHeaders = await cdn.fetchHeaders(before, range, range, []);
const reader = await BulkFilesReader_1.BulkFilesReaderStorage.fromStorage(storage, fetch, range);
await storage.knex.destroy();
return { cdn, r: { reader, liveHeaders } };
}
//# sourceMappingURL=BulkIngestorCDNBabbage.test.js.map