35 lines
976 B
JavaScript
35 lines
976 B
JavaScript
import test from 'brittle'
|
|
import b4a from 'b4a'
|
|
import { createBareOsChatService } from './lib/bare-os-chat-service.js'
|
|
|
|
test('broadcastLocal senderPk equals Noise socket.publicKey', async (t) => {
|
|
const wirePk = b4a.alloc(32)
|
|
wirePk[7] = 42
|
|
|
|
/** @type {{ sent?: Uint8Array }} */
|
|
const cap = {}
|
|
const disk = {
|
|
localNoiseWirePk: wirePk,
|
|
peers: new Set([
|
|
{
|
|
socket: { publicKey: wirePk },
|
|
chatChan: {
|
|
messages: [, , , , { send(evt) {
|
|
cap.sent = /** @type {Uint8Array} */ (evt.senderPk)
|
|
} }]
|
|
}
|
|
}
|
|
]),
|
|
protomuxChatChannelRxTotal: 0
|
|
}
|
|
|
|
const svc = createBareOsChatService({ env: {} })
|
|
svc.broadcastLocal(disk, 'hello', { displayName: 'x' })
|
|
|
|
t.ok(cap.sent && b4a.equals(cap.sent, wirePk), 'multiplex frame carries Noise static pk')
|
|
|
|
const hist = svc.history()
|
|
const last = hist[hist.length - 1]
|
|
t.ok(last && b4a.equals(/** @type {Uint8Array} */ (last.senderPk), wirePk))
|
|
})
|