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 { join } = require('node:path')
const os = require('node:os') const os = require('node:os')
const { promisify: p } = require('node:util')
const Keypair = require('pzp-keypair') const Keypair = require('pzp-keypair')
/** /**
@ -37,10 +38,10 @@ const Keypair = require('pzp-keypair')
* }} Peer * }} Peer
*/ */
/** /**
* *
* @param {{ path?: string }=} opts * @param {{ path?: string }=} opts
* @returns {Promise<Peer>}
*/ */
async function createPeer(opts) { async function createPeer(opts) {
let { path } = opts ?? {} let { path } = opts ?? {}
@ -97,9 +98,20 @@ async function createPeer(opts) {
await peer.db.loaded() 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() await peer.net.start()
return peer return {
peer,
account: globalAccountID,
}
} }
module.exports = { module.exports = {

View File

@ -1,20 +1,10 @@
const { test } = require('node:test') const { test } = require('node:test')
const assert = require('node:assert')
const p = require('node:util').promisify
const { createPeer } = require('../lib/') const { createPeer } = require('../lib/')
test('Basic createPeer', async (t) => { 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) => { await new Promise((res, rej) => {
peer.db.account.create({
subdomain: 'account',
_nonce: 'bob',
}, (err, account) => {
assert(!err)
peer.db.feed.publish({ peer.db.feed.publish({
account, account,
domain: "post", domain: "post",
@ -22,10 +12,9 @@ test('Basic createPeer', async (t) => {
text: 'woo a post' text: 'woo a post'
} }
}, (err, rec) => { }, (err, rec) => {
assert(!err) if (err) return rej(err)
peer.close(() => res(null)) peer.close(() => res(null))
}) })
}) })
})
}) })