Create account when creating peer

This commit is contained in:
Jacob Karlsson 2024-05-20 13:41:11 +02:00
parent dd0f0d042f
commit 707550e708
2 changed files with 24 additions and 23 deletions

View File

@ -1,5 +1,6 @@
const { join } = require('node:path')
const os = require('node:os')
const { promisify: p } = require('node:util')
const Keypair = require('pzp-keypair')
/**
@ -37,10 +38,10 @@ const Keypair = require('pzp-keypair')
* }} Peer
*/
/**
*
* @param {{ path?: string }=} opts
* @returns {Promise<Peer>}
*/
async function createPeer(opts) {
let { path } = opts ?? {}
@ -97,9 +98,20 @@ async function createPeer(opts) {
await peer.db.loaded()
// @ts-ignore
const id = await p(peer.db.account.findOrCreate)({ subdomain: 'person' })
/** @type {string} */
const globalAccountID = id
await p(peer.set.load)(id)
await p(peer.dict.load)(id)
await peer.net.start()
return peer
return {
peer,
account: globalAccountID,
}
}
module.exports = {

View File

@ -1,31 +1,20 @@
const { test } = require('node:test')
const assert = require('node:assert')
const p = require('node:util').promisify
const { createPeer } = require('../lib/')
test('Basic createPeer', async (t) => {
const peer = await createPeer()
const { peer, account } = await createPeer()
// TODO: getting warning
//Warning: A resource generated asynchronous activity after the test ended. This activity created the error "Error: Cannot call values() before loading" which triggered an uncaughtException event, caught by the test runner.
await new Promise((res, rej) => {
peer.db.account.create({
subdomain: 'account',
_nonce: 'bob',
}, (err, account) => {
assert(!err)
peer.db.feed.publish({
account,
domain: "post",
data: {
text: 'woo a post'
}
}, (err, rec) => {
if (err) return rej(err)
peer.db.feed.publish({
account,
domain: "post",
data: {
text: 'woo a post'
}
}, (err, rec) => {
assert(!err)
peer.close(() => res(null))
})
peer.close(() => res(null))
})
})
})