47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
import test from 'brittle'
|
|
import b4a from 'b4a'
|
|
import { createBareOsChatService } from './lib/services/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: {
|
|
fullyOpened: async () => true,
|
|
messages: [
|
|
,
|
|
,
|
|
,
|
|
,
|
|
{
|
|
send(evt) {
|
|
cap.sent = /** @type {Uint8Array} */ (evt.senderPk)
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]),
|
|
protomuxChatChannelRxTotal: 0
|
|
}
|
|
|
|
const svc = createBareOsChatService({ env: {} })
|
|
await 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))
|
|
})
|