refactor/prettify tests

This commit is contained in:
Andre Staltz 2023-11-10 11:06:19 +02:00
parent 9356b9b3d9
commit f40ea71ff9
No known key found for this signature in database
GPG Key ID: 9EDE23EA7E8A4890
14 changed files with 1533 additions and 1519 deletions

View File

@ -12,6 +12,7 @@ const DIR = path.join(os.tmpdir(), 'ppppp-db-account-add')
rimraf.sync(DIR)
test('account.add()', async (t) => {
await t.test('Basic usage', async (t) => {
const keypair1 = Keypair.generate('ed25519', 'alice')
const keypair2 = Keypair.generate('ed25519', 'bob')
@ -70,7 +71,7 @@ test('account.add()', async (t) => {
await p(peer.close)()
})
test('keypair with no "add" powers cannot account.add()', async (t) => {
await t.test('keypair with no "add" powers cannot add', async (t) => {
rimraf.sync(DIR)
const keypair1 = Keypair.generate('ed25519', 'alice')
const keypair2 = Keypair.generate('ed25519', 'bob')
@ -150,7 +151,7 @@ test('keypair with no "add" powers cannot account.add()', async (t) => {
await p(peer1again.close)()
})
test('publish with a key in the account', async (t) => {
await t.test('publish with a key in the account', async (t) => {
rimraf.sync(DIR)
const keypair1 = Keypair.generate('ed25519', 'alice')
@ -226,3 +227,4 @@ test('publish with a key in the account', async (t) => {
await p(carol.close)()
})
})

View File

@ -11,7 +11,8 @@ const Keypair = require('ppppp-keypair')
const DIR = path.join(os.tmpdir(), 'ppppp-db-account-create')
rimraf.sync(DIR)
test('account.create() with just "domain"', async (t) => {
test('account.create() ', async (t) => {
await t.test('create with just "domain"', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
@ -53,7 +54,7 @@ test('account.create() with just "domain"', async (t) => {
await p(peer.close)()
})
test('account.create() with "keypair" and "domain"', async (t) => {
await t.test('create with "keypair" and "domain"', async (t) => {
rimraf.sync(DIR)
const keypair = Keypair.generate('ed25519', 'alice')
@ -82,7 +83,7 @@ test('account.create() with "keypair" and "domain"', async (t) => {
await p(peer.close)()
})
test('account.find() can find', async (t) => {
await t.test('account.find() can find', async (t) => {
rimraf.sync(DIR)
const keypair = Keypair.generate('ed25519', 'alice')
const domain = 'person'
@ -102,7 +103,7 @@ test('account.find() can find', async (t) => {
await p(peer.close)()
})
test('account.findOrCreate() can find', async (t) => {
await t.test('account.findOrCreate() can find', async (t) => {
rimraf.sync(DIR)
const keypair = Keypair.generate('ed25519', 'alice')
const domain = 'person'
@ -122,7 +123,7 @@ test('account.findOrCreate() can find', async (t) => {
await p(peer.close)()
})
test('account.findOrCreate() can create', async (t) => {
await t.test('account.findOrCreate() can create', async (t) => {
rimraf.sync(DIR)
const keypair = Keypair.generate('ed25519', 'alice')
const domain = 'person'
@ -156,3 +157,4 @@ test('account.findOrCreate() can create', async (t) => {
await p(peer.close)()
})
})

View File

@ -6,14 +6,13 @@ const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const Log = require('../lib/log')
const push = require('push-stream')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const DIR = path.join(os.tmpdir(), 'ppppp-db-del')
rimraf.sync(DIR)
test('del', async (t) => {
test('del()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))

View File

@ -13,7 +13,7 @@ const Keypair = require('ppppp-keypair')
const DIR = path.join(os.tmpdir(), 'ppppp-db-erase')
rimraf.sync(DIR)
test('erase', async (t) => {
test('erase()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))

View File

@ -12,31 +12,23 @@ const MsgV3 = require('../lib/msg-v3')
const DIR = path.join(os.tmpdir(), 'ppppp-db-feed-publish')
rimraf.sync(DIR)
test('feed.getID()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
let peer
let id
let moot
let mootID
test('setup', async (t) => {
peer = SecretStack({ appKey: caps.shse })
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, path: DIR })
await peer.db.loaded()
id = (await p(peer.db.account.create)({domain: 'person'}))
moot = MsgV3.createMoot(id, 'post', keypair)
mootID = MsgV3.getMsgID(moot)
const id = await p(peer.db.account.create)({ domain: 'person' })
const moot = MsgV3.createMoot(id, 'post', keypair)
const mootID = MsgV3.getMsgID(moot)
await p(peer.db.add)(moot, mootID)
})
test('feed.getID()', async (t) => {
const feedID = peer.db.feed.getID(id, 'post')
assert.equal(feedID, mootID, 'feed.getID() returns moot ID')
})
test('teardown', (t) => {
peer.close(t.end)
await p(peer.close)(true)
})

View File

@ -12,13 +12,16 @@ const MsgV3 = require('../lib/msg-v3')
const DIR = path.join(os.tmpdir(), 'ppppp-db-feed-publish')
rimraf.sync(DIR)
test('feed.publish()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const bobKeypair = Keypair.generate('ed25519', 'bob')
let peer
let id
let moot
let mootID
test('setup', async (t) => {
// Setup
{
peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
@ -26,15 +29,16 @@ test('setup', async (t) => {
await peer.db.loaded()
id = (await p(peer.db.account.create)({domain: 'person'}))
id = await p(peer.db.account.create)({ domain: 'person' })
moot = MsgV3.createMoot(id, 'post', keypair)
mootID = MsgV3.getMsgID(moot)
})
}
let msgID1
let rec1
let msgID2
test('feed.publish()', async (t) => {
await t.test('can add new msgs to the db', async (t) => {
rec1 = await p(peer.db.feed.publish)({
account: id,
domain: 'post',
@ -73,7 +77,7 @@ test('feed.publish()', async (t) => {
msgID2 = MsgV3.getMsgID(rec2.msg)
})
test('add() forked then feed.publish() merged', async (t) => {
await t.test('merges tangle after a forked add()', async (t) => {
const tangle = new MsgV3.Tangle(mootID)
tangle.add(mootID, moot)
tangle.add(rec1.id, rec1.msg)
@ -117,7 +121,7 @@ test('add() forked then feed.publish() merged', async (t) => {
)
})
test('feed.publish() encrypted with box', async (t) => {
await t.test('publish encrypted with box', async (t) => {
const recEncrypted = await p(peer.db.feed.publish)({
account: id,
domain: 'post',
@ -131,7 +135,7 @@ test('feed.publish() encrypted with box', async (t) => {
assert.equal(msgDecrypted.data.text, 'I am chewing food')
})
test('feed.publish() with tangles', async (t) => {
await t.test('publish with tangles', async (t) => {
const recA = await p(peer.db.feed.publish)({
account: id,
domain: 'comment',
@ -154,6 +158,5 @@ test('feed.publish() with tangles', async (t) => {
)
})
test('teardown', (t) => {
peer.close(t.end)
await p(peer.close)(true)
})

View File

@ -12,34 +12,27 @@ const MsgV3 = require('../lib/msg-v3')
const DIR = path.join(os.tmpdir(), 'ppppp-db-get')
rimraf.sync(DIR)
test('get()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
let peer
let id
let msgID1
test('setup', async (t) => {
peer = SecretStack({ appKey: caps.shse })
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, path: DIR })
await peer.db.loaded()
id = (await p(peer.db.account.create)({domain: 'person'}))
const id = await p(peer.db.account.create)({ domain: 'person' })
const rec1 = await p(peer.db.feed.publish)({
account: id,
domain: 'post',
data: { text: 'I am 1st post' },
})
msgID1 = MsgV3.getMsgID(rec1.msg)
})
const msgID1 = MsgV3.getMsgID(rec1.msg)
test('get() supports msg IDs', async (t) => {
const msg = peer.db.get(msgID1)
assert.ok(msg, 'msg exists')
assert.equal(msg.data.text, 'I am 1st post')
})
test('teardown', (t) => {
peer.close(t.end)
await p(peer.close)(true)
})

View File

@ -11,10 +11,13 @@ const Keypair = require('ppppp-keypair')
const DIR = path.join(os.tmpdir(), 'ppppp-db-tangle')
rimraf.sync(DIR)
test('getTangle()', async (t) => {
let peer
let rootPost, reply1Lo, reply1Hi, reply2, reply3Lo, reply3Hi
let tangle
test('setup', async (t) => {
// Setup
{
const keypairA = Keypair.generate('ed25519', 'alice')
const keypairB = Keypair.generate('ed25519', 'bob')
const keypairC = Keypair.generate('ed25519', 'carol')
@ -92,9 +95,9 @@ test('setup', async (t) => {
reply3Hi = reply3B.localeCompare(reply3C) < 0 ? reply3C : reply3B
tangle = peer.db.getTangle(rootPost)
})
}
test('Tangle.has', (t) => {
await t.test('Tangle.has', (t) => {
assert.equal(tangle.has(rootPost), true, 'has rootPost')
assert.equal(tangle.has(reply1Lo), true, 'has reply1Lo')
assert.equal(tangle.has(reply1Hi), true, 'has reply1Hi')
@ -104,7 +107,7 @@ test('Tangle.has', (t) => {
assert.equal(tangle.has('nonsense'), false, 'does not have nonsense')
})
test('Tangle.getDepth', (t) => {
await t.test('Tangle.getDepth', (t) => {
assert.equal(tangle.getDepth(rootPost), 0, 'depth of rootPost is 0')
assert.equal(tangle.getDepth(reply1Lo), 1, 'depth of reply1Lo is 1')
assert.equal(tangle.getDepth(reply1Hi), 1, 'depth of reply1Hi is 1')
@ -113,11 +116,11 @@ test('Tangle.getDepth', (t) => {
assert.equal(tangle.getDepth(reply3Hi), 3, 'depth of reply3Hi is 3')
})
test('Tangle.maxDepth', (t) => {
await t.test('Tangle.maxDepth', (t) => {
assert.equal(tangle.maxDepth, 3, 'max depth is 3')
})
test('Tangle.topoSort', (t) => {
await t.test('Tangle.topoSort', (t) => {
const sorted = tangle.topoSort()
assert.deepEqual(sorted, [
@ -130,7 +133,7 @@ test('Tangle.topoSort', (t) => {
])
})
test('Tangle.precedes', (t) => {
await t.test('Tangle.precedes', (t) => {
assert.equal(
tangle.precedes(rootPost, reply1Lo),
true,
@ -173,7 +176,7 @@ test('Tangle.precedes', (t) => {
)
})
test('Tangle.tips', (t) => {
await t.test('Tangle.tips', (t) => {
const tips = tangle.tips
assert.equal(tips.size, 2, 'there are 2 tips')
@ -181,7 +184,7 @@ test('Tangle.tips', (t) => {
assert.equal(tips.has(reply3Hi), true, 'tips contains reply3Hi')
})
test('Tangle.getLipmaaSet', (t) => {
await t.test('Tangle.getLipmaaSet', (t) => {
assert.equal(tangle.getLipmaaSet(0).size, 0, 'lipmaa 0 (empty)')
assert.equal(tangle.getLipmaaSet(1).size, 1, 'lipmaa 1 (-1)')
@ -201,14 +204,14 @@ test('Tangle.getLipmaaSet', (t) => {
assert.equal(tangle.getLipmaaSet(5).size, 0, 'lipmaa 5 (empty)')
})
test('Tangle.getDeletablesAndErasables basic', (t) => {
await t.test('Tangle.getDeletablesAndErasables basic', (t) => {
const { deletables, erasables } = tangle.getDeletablesAndErasables(reply2)
assert.deepEqual([...deletables], [reply1Hi], 'deletables')
assert.deepEqual([...erasables], [reply1Lo, rootPost], 'erasables')
})
test('Tangle.getDeletablesAndErasables with many inputs', (t) => {
await t.test('Tangle.getDeletablesAndErasables with many inputs', (t) => {
const { deletables, erasables } = tangle.getDeletablesAndErasables(
reply3Lo,
reply2
@ -218,24 +221,35 @@ test('Tangle.getDeletablesAndErasables with many inputs', (t) => {
assert.deepEqual([...erasables], [reply1Lo, rootPost], 'erasables')
})
test('Tangle.getDeletablesAndErasables with many inputs again', (t) => {
await t.test(
'Tangle.getDeletablesAndErasables with many inputs again',
(t) => {
const { deletables, erasables } = tangle.getDeletablesAndErasables(
reply3Lo,
reply3Hi
)
assert.deepEqual([...deletables], [reply1Lo, reply1Hi, reply2], 'deletables')
assert.deepEqual(
[...deletables],
[reply1Lo, reply1Hi, reply2],
'deletables'
)
assert.deepEqual([...erasables], [rootPost], 'erasables')
})
}
)
test('Tangle.getDeletablesAndErasables with lipmaa', (t) => {
await t.test('Tangle.getDeletablesAndErasables with lipmaa', (t) => {
const { deletables, erasables } = tangle.getDeletablesAndErasables(reply3Lo)
assert.deepEqual([...deletables], [reply1Lo, reply1Hi, reply2], 'deletables')
assert.deepEqual(
[...deletables],
[reply1Lo, reply1Hi, reply2],
'deletables'
)
assert.deepEqual([...erasables], [rootPost], 'erasables')
})
test('Tangle.getMinimumAmong', (t) => {
await t.test('Tangle.getMinimumAmong', (t) => {
const actual1 = tangle.getMinimumAmong([reply1Lo, reply1Hi])
const expected1 = [reply1Lo, reply1Hi]
assert.deepEqual(actual1, expected1)
@ -253,8 +267,11 @@ test('Tangle.getMinimumAmong', (t) => {
assert.deepEqual(actual4, expected4)
})
test('Tangle.topoSort after some have been deleted and erased', async (t) => {
const { deletables, erasables } = tangle.getDeletablesAndErasables(reply3Lo)
await t.test(
'Tangle.topoSort after some have been deleted and erased',
async (t) => {
const { deletables, erasables } =
tangle.getDeletablesAndErasables(reply3Lo)
for (const msgID of deletables) {
await p(peer.db.del)(msgID)
}
@ -266,8 +283,8 @@ test('Tangle.topoSort after some have been deleted and erased', async (t) => {
const sorted = tangle2.topoSort()
assert.deepEqual(sorted, [rootPost, reply3Lo, reply3Hi])
})
}
)
test('teardown', async (t) => {
await p(peer.close)(true)
})

View File

@ -4,7 +4,8 @@ const fs = require('node:fs')
const p = require('node:util').promisify
const Log = require('../../lib/log')
test('Log handles basic binary records', async function (t) {
test('Log basics', async function (t) {
await t.test('Log handles basic binary records', async function (t) {
const file = '/tmp/ppppp-db-log-test-basic-binary.log'
try {
fs.unlinkSync(file)
@ -32,7 +33,7 @@ test('Log handles basic binary records', async function (t) {
const json1 = { text: 'testing' }
const json2 = { test: 'testing2' }
test('Log handles basic json records', async function (t) {
await t.test('Log handles basic json records', async function (t) {
const file = '/tmp/ppppp-db-log-test-basic-json.log'
try {
fs.unlinkSync(file)
@ -57,7 +58,7 @@ test('Log handles basic json records', async function (t) {
await p(log.close)()
})
test('Log handles basic json record re-reading', async function (t) {
await t.test('Log handles basic json record re-reading', async function (t) {
const file = '/tmp/ppppp-db-log-test-basic-json.log'
const log = Log(file, {
blockSize: 2 * 1024,
@ -75,3 +76,4 @@ test('Log handles basic json record re-reading', async function (t) {
await p(log.close)()
})
})

View File

@ -14,7 +14,8 @@ const msg3 = Buffer.from(
'hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db hello offsetty db'
)
test('Log performing simple delete', async (t) => {
test('Log deletes', async (t) => {
await t.test('Simple delete', async (t) => {
const file = '/tmp/ppppp-db-log-test-del.log'
try {
fs.unlinkSync(file)
@ -47,7 +48,7 @@ test('Log performing simple delete', async (t) => {
await p(log.close)()
})
test('Log deleted records are not invalid upon re-opening', async (t) => {
await t.test('Deleted records are not invalid upon re-opening', async (t) => {
const file = '/tmp/ppppp-db-log-test-del-invalid.log'
try {
fs.unlinkSync(file)
@ -109,7 +110,7 @@ test('Log deleted records are not invalid upon re-opening', async (t) => {
await p(log2.close)()
})
test('Log deletes are handled by scan()', async (t) => {
await t.test('Deletes are noticed by scan()', async (t) => {
const file = '/tmp/offset-test_' + Date.now() + '.log'
const log = Log(file, { blockSize: 64 * 1024 })
@ -140,7 +141,7 @@ test('Log deletes are handled by scan()', async (t) => {
await p(log.close)()
})
test('Log can handle many deleted records', { timeout: 60e3 }, async (t) => {
await t.test('Many deleted records', { timeout: 60e3 }, async (t) => {
const file = '/tmp/aaol-test-delete-many' + Date.now() + '.log'
const log = Log(file, { blockSize: 64 * 1024 })
@ -187,3 +188,4 @@ test('Log can handle many deleted records', { timeout: 60e3 }, async (t) => {
await p(log.close)()
})
})

View File

@ -9,7 +9,8 @@ var file = '/tmp/ds-test_restart.log'
var msg1 = { text: 'hello world hello world' }
var msg2 = { text: 'hello world hello world 2' }
test('Log (fix buggy write) simple', async (t) => {
test('Log fix buggy write', async (t) => {
await t.test('Simple', async (t) => {
try {
fs.unlinkSync(file)
} catch (_) {}
@ -41,7 +42,7 @@ test('Log (fix buggy write) simple', async (t) => {
await p(log.close)()
})
test('Log (fix buggy write) reread', async (t) => {
await t.test('Re-read', async (t) => {
const log = Log(file, {
block: 16 * 1024,
codec: require('flumecodec/json'),
@ -64,3 +65,4 @@ test('Log (fix buggy write) reread', async (t) => {
await p(log.close)()
})
})

View File

@ -3,7 +3,8 @@ const assert = require('node:assert')
const Keypair = require('ppppp-keypair')
const MsgV3 = require('../../lib/msg-v3')
test('MsgV3 invalid domain not a string', (t) => {
test('MsgV3 domain validation', async (t) => {
await t.test('Not a string', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
assert.throws(
@ -19,7 +20,7 @@ test('MsgV3 invalid domain not a string', (t) => {
)
})
test('MsgV3 invalid domain with "/" character', (t) => {
await t.test('"/" character', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
assert.throws(
@ -35,7 +36,7 @@ test('MsgV3 invalid domain with "/" character', (t) => {
)
})
test('MsgV3 invalid domain with "*" character', (t) => {
await t.test('"*" character', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
assert.throws(
@ -51,7 +52,7 @@ test('MsgV3 invalid domain with "*" character', (t) => {
)
})
test('MsgV3 invalid domain too short', (t) => {
await t.test('Too short', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
assert.throws(
@ -67,7 +68,7 @@ test('MsgV3 invalid domain too short', (t) => {
)
})
test('MsgV3 invalid domain too long', (t) => {
await t.test('too long', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
assert.throws(
@ -82,3 +83,4 @@ test('MsgV3 invalid domain too long', (t) => {
'invalid domain if too long'
)
})
})

View File

@ -10,7 +10,8 @@ const account = MsgV3.getMsgID(
)
const pubkeys = new Set([keypair.public])
test('MsgV3 invalid msg with non-array prev', (t) => {
test('MsgV3 tangles prev validation', async (t) => {
await t.test('Non-array is a bad prev', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const moot = MsgV3.createMoot(account, 'post', keypair)
@ -41,7 +42,7 @@ test('MsgV3 invalid msg with non-array prev', (t) => {
)
})
test('MsgV3 invalid msg with bad prev', (t) => {
await t.test('Number not allowed in prev', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const moot = MsgV3.createMoot(account, 'post', keypair)
@ -86,7 +87,7 @@ test('MsgV3 invalid msg with bad prev', (t) => {
)
})
test('MsgV3 invalid msg with URI in prev', (t) => {
await t.test('URI not allowed in prev', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const moot = MsgV3.createMoot(account, 'post', keypair)
@ -129,7 +130,7 @@ test('MsgV3 invalid msg with URI in prev', (t) => {
assert.match(err, /prev item ".*" is a URI/, 'invalid 2nd msg description')
})
test('MsgV3 invalid msg with unknown prev', (t) => {
await t.test('Locally unknown prev msgID', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const moot = MsgV3.createMoot(account, 'post', keypair)
@ -189,7 +190,7 @@ test('MsgV3 invalid msg with unknown prev', (t) => {
)
})
test('MsgV3 invalid feed msg with a different pubkey', (t) => {
await t.test('Feed msg with the wrong pubkey', (t) => {
const keypairA = Keypair.generate('ed25519', 'alice')
const keypairB = Keypair.generate('ed25519', 'bob')
@ -223,7 +224,7 @@ test('MsgV3 invalid feed msg with a different pubkey', (t) => {
)
})
test('MsgV3 invalid feed msg with a different domain', (t) => {
await t.test('Feed msg with the wrong domain', (t) => {
const keypairA = Keypair.generate('ed25519', 'alice')
const moot = MsgV3.createMoot(account, 'post', keypair)
@ -252,7 +253,7 @@ test('MsgV3 invalid feed msg with a different domain', (t) => {
)
})
test('MsgV3 invalid feed msg with non-alphabetical prev', (t) => {
await t.test('Feed msg with non-alphabetically sorted prev', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const moot = MsgV3.createMoot(account, 'post', keypair)
@ -317,7 +318,7 @@ test('MsgV3 invalid feed msg with non-alphabetical prev', (t) => {
)
})
test('MsgV3 invalid feed msg with duplicate prev', (t) => {
await t.test('Feed msg with duplicate prev', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const moot = MsgV3.createMoot(account, 'post', keypair)
@ -345,3 +346,4 @@ test('MsgV3 invalid feed msg with duplicate prev', (t) => {
assert.ok(err, 'invalid 1st msg throws')
assert.match(err, /prev ".*" contains duplicates/, 'invalid error message')
})
})

View File

@ -3,7 +3,8 @@ const assert = require('node:assert')
const Keypair = require('ppppp-keypair')
const MsgV3 = require('../../lib/msg-v3')
test('MsgV3 validate root msg', (t) => {
test('MsgV3 validation', async (t) => {
await t.test('Correct root msg', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const account = MsgV3.getMsgID(
MsgV3.createAccount(keypair, 'person', 'alice')
@ -19,7 +20,7 @@ test('MsgV3 validate root msg', (t) => {
assert.ifError(err, 'valid root msg')
})
test('MsgV3 validate account tangle', (t) => {
await t.test('Correct account tangle', (t) => {
const pubkeys = new Set()
const keypair1 = Keypair.generate('ed25519', 'alice')
pubkeys.add(keypair1.public)
@ -56,17 +57,11 @@ test('MsgV3 validate account tangle', (t) => {
})
const accountMsg1ID = MsgV3.getMsgID(accountMsg1)
err = MsgV3.validate(
accountMsg1,
tangle,
pubkeys,
accountMsg1ID,
account
)
err = MsgV3.validate(accountMsg1, tangle, pubkeys, accountMsg1ID, account)
assert.ifError(err, 'valid account msg')
})
test('MsgV3 validate 2nd msg with existing root', (t) => {
await t.test('2nd msg correct with existing root', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const account = MsgV3.getMsgID(
MsgV3.createAccount(keypair, 'person', 'alice')
@ -95,7 +90,7 @@ test('MsgV3 validate 2nd msg with existing root', (t) => {
assert.ifError(err, 'valid 2nd msg')
})
test('MsgV3 validate 2nd forked msg', (t) => {
await t.test('2nd forked msg correct', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const account = MsgV3.getMsgID(
MsgV3.createAccount(keypair, 'person', 'alice')
@ -137,7 +132,7 @@ test('MsgV3 validate 2nd forked msg', (t) => {
assert.ifError(err, 'valid 2nd forked msg')
})
test('MsgV3 validate erased msg', (t) => {
await t.test('Correct erased msg', (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const account = MsgV3.getMsgID(
MsgV3.createAccount(keypair, 'person', 'alice')
@ -165,3 +160,4 @@ test('MsgV3 validate erased msg', (t) => {
const err = MsgV3.validate(msg1, tangle, pubkeys, msgID1, mootID)
assert.ifError(err, 'valid erased msg')
})
})