test/minimal.test.mjs
Alle Dateien · Rohdatei öffnen
// Copyright 2026 Richard Andresik. SPDX-License-Identifier: Apache-2.0
import assert from "node:assert/strict";
import test from "node:test";
import { paired } from "./endpoint.mjs";
test("two local peers exchange text and reject changed ciphertext", async () => {
const { primary, secondary } = await paired();
const original = await primary.session.encryptText("Hello 🧊", 1, "primary");
assert.equal((await secondary.session.decryptText(original)).text, "Hello 🧊");
const changed = JSON.parse(original);
const bytes = Buffer.from(changed.c, "base64url");
bytes[0] ^= 1;
changed.c = bytes.toString("base64url");
await assert.rejects(secondary.session.decryptText(JSON.stringify(changed)));
const reply = await secondary.session.encryptText("Reply after rejection", 2, "secondary");
assert.equal((await primary.session.decryptText(reply)).text, "Reply after rejection");
const later = await primary.session.encryptText("Still connected", 3, "primary");
assert.equal((await secondary.session.decryptText(later)).text, "Still connected");
});