mirror of https://codeberg.org/pzp/pzp-db.git
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
const test = require('node:test')
|
|
const assert = require('node:assert')
|
|
const path = require('node:path')
|
|
const os = require('node:os')
|
|
const p = require('node:util').promisify
|
|
const rimraf = require('rimraf')
|
|
const Keypair = require('pzp-keypair')
|
|
const { createPeer } = require('./util')
|
|
|
|
const DIR = path.join(os.tmpdir(), 'pzp-db-on-record-deleted-or-erased')
|
|
rimraf.sync(DIR)
|
|
|
|
test('onRecordDeletedOrErased()', async (t) => {
|
|
const peer = createPeer({
|
|
keypair: Keypair.generate('ed25519', 'alice'),
|
|
path: DIR,
|
|
})
|
|
|
|
await peer.db.loaded()
|
|
|
|
const id = await p(peer.db.account.create)({
|
|
subdomain: 'person',
|
|
_nonce: 'alice',
|
|
})
|
|
|
|
const msgIDs = []
|
|
for (let i = 0; i < 5; i++) {
|
|
const rec = await p(peer.db.feed.publish)({
|
|
account: id,
|
|
domain: 'post',
|
|
data: { text: 'm' + i },
|
|
})
|
|
msgIDs.push(rec.id)
|
|
}
|
|
|
|
const listened1 = []
|
|
const remove1 = peer.db.onRecordDeletedOrErased((msgID) => {
|
|
listened1.push(msgID)
|
|
})
|
|
assert.deepEqual(listened1, [], '(nothing)')
|
|
await p(peer.db.erase)(msgIDs[2])
|
|
assert.deepEqual(listened1, [msgIDs[2]], 'erased')
|
|
remove1()
|
|
|
|
const listened2 = []
|
|
const remove2 = peer.db.onRecordDeletedOrErased((msgID) => {
|
|
listened2.push(msgID)
|
|
})
|
|
assert.deepEqual(listened2, [msgIDs[2]], 'erased')
|
|
await p(peer.db.del)(msgIDs[1])
|
|
assert.deepEqual(listened2, [msgIDs[2], msgIDs[1]], 'erased and deleted')
|
|
remove2()
|
|
|
|
assert.deepEqual(listened1, [msgIDs[2]], 'erased') // still the same
|
|
await p(peer.close)(true)
|
|
})
|