test: add test for retroactively enabling indexer
This commit is contained in:
parent
b4be8574e5
commit
865f7401ba
@ -19,7 +19,13 @@ const FullNode = require('../lib/node/fullnode');
|
|||||||
const Network = require('../lib/protocol/network');
|
const Network = require('../lib/protocol/network');
|
||||||
const network = Network.get('regtest');
|
const network = Network.get('regtest');
|
||||||
const {NodeClient, WalletClient} = require('bclient');
|
const {NodeClient, WalletClient} = require('bclient');
|
||||||
const {forValue} = require('./util/common');
|
const {forValue, testdir, rimraf} = require('./util/common');
|
||||||
|
|
||||||
|
const ports = {
|
||||||
|
p2p: 49331,
|
||||||
|
node: 49332,
|
||||||
|
wallet: 49333
|
||||||
|
};
|
||||||
|
|
||||||
const vectors = [
|
const vectors = [
|
||||||
// Secret for the public key vectors:
|
// Secret for the public key vectors:
|
||||||
@ -302,7 +308,7 @@ describe('Indexer', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Rescan and reorg', function() {
|
describe('Reorg and rescan', function() {
|
||||||
it('should rescan and reindex 10 missed blocks', async () => {
|
it('should rescan and reindex 10 missed blocks', async () => {
|
||||||
for (let i = 0; i < 10; i++) {
|
for (let i = 0; i < 10; i++) {
|
||||||
const block = await cpu.mineBlock();
|
const block = await cpu.mineBlock();
|
||||||
@ -337,6 +343,92 @@ describe('Indexer', function() {
|
|||||||
assert.bufferEqual(meta.tx.hash(), hash);
|
assert.bufferEqual(meta.tx.hash(), hash);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Integration', function() {
|
||||||
|
const prefix = testdir('indexer');
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await rimraf(prefix);
|
||||||
|
});
|
||||||
|
|
||||||
|
after(async () => {
|
||||||
|
await rimraf(prefix);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('will enable indexes retroactively', async () => {
|
||||||
|
let node, nclient = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
node = new FullNode({
|
||||||
|
prefix: prefix,
|
||||||
|
network: 'regtest',
|
||||||
|
apiKey: 'foo',
|
||||||
|
memory: false,
|
||||||
|
indexTX: false,
|
||||||
|
indexAddress: false,
|
||||||
|
port: ports.p2p,
|
||||||
|
httpPort: ports.node
|
||||||
|
});
|
||||||
|
|
||||||
|
await node.ensure();
|
||||||
|
await node.open();
|
||||||
|
|
||||||
|
nclient = new NodeClient({
|
||||||
|
port: ports.node,
|
||||||
|
apiKey: 'foo',
|
||||||
|
timeout: 120000
|
||||||
|
});
|
||||||
|
|
||||||
|
await nclient.open();
|
||||||
|
|
||||||
|
const blocks = await nclient.execute(
|
||||||
|
'generatetoaddress', [150, vectors[0].addr]);
|
||||||
|
|
||||||
|
assert.equal(blocks.length, 150);
|
||||||
|
|
||||||
|
await forValue(node.chain, 'height', 150);
|
||||||
|
|
||||||
|
const info = await nclient.request('GET', '/');
|
||||||
|
|
||||||
|
assert.equal(info.chain.height, 150);
|
||||||
|
assert.equal(info.indexes.addr.enabled, false);
|
||||||
|
assert.equal(info.indexes.addr.height, 0);
|
||||||
|
assert.equal(info.indexes.tx.enabled, false);
|
||||||
|
assert.equal(info.indexes.tx.height, 0);
|
||||||
|
} finally {
|
||||||
|
if (nclient)
|
||||||
|
await nclient.close();
|
||||||
|
|
||||||
|
if (node)
|
||||||
|
await node.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
node = new FullNode({
|
||||||
|
prefix: prefix,
|
||||||
|
network: 'regtest',
|
||||||
|
memory: false,
|
||||||
|
indexTX: true,
|
||||||
|
indexAddress: false,
|
||||||
|
port: ports.p2p,
|
||||||
|
httpPort: ports.node
|
||||||
|
});
|
||||||
|
|
||||||
|
await node.ensure();
|
||||||
|
await node.open();
|
||||||
|
|
||||||
|
assert(node.txindex);
|
||||||
|
assert.equal(node.txindex.height, 0);
|
||||||
|
|
||||||
|
node.txindex.sync();
|
||||||
|
|
||||||
|
await forValue(node.txindex, 'height', 150);
|
||||||
|
} finally {
|
||||||
|
if (node)
|
||||||
|
await node.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('HTTP', function() {
|
describe('HTTP', function() {
|
||||||
@ -347,12 +439,6 @@ describe('Indexer', function() {
|
|||||||
const confirmed = [];
|
const confirmed = [];
|
||||||
const unconfirmed = [];
|
const unconfirmed = [];
|
||||||
|
|
||||||
const ports = {
|
|
||||||
p2p: 49331,
|
|
||||||
node: 49332,
|
|
||||||
wallet: 49333
|
|
||||||
};
|
|
||||||
|
|
||||||
function sanitize(txs) {
|
function sanitize(txs) {
|
||||||
return txs.map((tx) => {
|
return txs.map((tx) => {
|
||||||
// Remove mtime from the results for deep
|
// Remove mtime from the results for deep
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user