|
1 | 1 | const test = require('brittle') |
2 | | -const fs = require('fs') |
3 | | -const Path = require('path') |
4 | 2 |
|
5 | | -const Hypercore = require('..') |
| 3 | +const Hypercore = require('../') |
| 4 | +const { createStorage, toArray } = require('./helpers') |
6 | 5 |
|
7 | 6 | test('basic purge', async function (t) { |
8 | 7 | const dir = await t.tmp() |
9 | | - const core = new Hypercore(dir) |
| 8 | + const storage = await createStorage(t, dir) |
| 9 | + const core = new Hypercore(storage) |
| 10 | + |
10 | 11 | await core.append(['a', 'b', 'c']) |
11 | 12 |
|
12 | | - const oplogLoc = Path.join(dir, 'oplog') |
13 | | - const treeLoc = Path.join(dir, 'tree') |
14 | | - const bitfieldLoc = Path.join(dir, 'bitfield') |
15 | | - const dataLoc = Path.join(dir, 'data') |
| 13 | + // Sanity check for core having data |
| 14 | + t.is(core.length, 3) |
16 | 15 |
|
17 | | - t.is(fs.existsSync(oplogLoc), true) |
18 | | - t.is(fs.existsSync(treeLoc), true) |
19 | | - t.is(fs.existsSync(bitfieldLoc), true) |
20 | | - t.is(fs.existsSync(dataLoc), true) |
21 | | - t.is(fs.readdirSync(dir).length, 4) // Sanity check |
| 16 | + const discoveryKey = core.discoveryKey |
22 | 17 |
|
23 | 18 | await core.purge() |
24 | 19 |
|
25 | | - t.is(core.closed, true) |
26 | | - t.is(fs.existsSync(oplogLoc), false) |
27 | | - t.is(fs.existsSync(treeLoc), false) |
28 | | - t.is(fs.existsSync(bitfieldLoc), false) |
29 | | - t.is(fs.existsSync(dataLoc), false) |
30 | | - t.is(fs.readdirSync(dir).length, 0) // Nothing remains |
| 20 | + const reopenedStorage = await createStorage(t, dir) |
| 21 | + const coreStorage = await reopenedStorage.resumeCore(discoveryKey) |
| 22 | + |
| 23 | + const allBlocks = await toArray(coreStorage.createBlockStream()) |
| 24 | + t.is(allBlocks.length, 0) |
| 25 | + |
| 26 | + const allTreeNodes = await toArray(coreStorage.createTreeNodeStream()) |
| 27 | + t.is(allTreeNodes.length, 0) |
| 28 | + |
| 29 | + const allBitfieldPages = await toArray(coreStorage.createBitfieldStream()) |
| 30 | + t.is(allBitfieldPages.length, 0) |
31 | 31 | }) |
32 | 32 |
|
33 | 33 | test('purge closes all sessions', async function (t) { |
|
0 commit comments