Files
bitvid/tests/reaction-event-builder.test.mjs
T

59 lines
2.0 KiB
JavaScript

import test from "node:test";
import assert from "node:assert/strict";
import { buildReactionEvent } from "../js/nostrEventSchemas.js";
test("buildReactionEvent includes pointer and author tags when pubkey provided", () => {
const event = buildReactionEvent({
pubkey: "viewer",
created_at: 1700000000,
pointerValue: "event-id",
pointerTag: ["e", "event-id", "wss://relay.example"],
targetPointer: { type: "e", value: "event-id", relay: "wss://relay.example" },
targetAuthorPubkey: "author-pubkey",
content: "+",
});
const pointerTags = event.tags.filter((tag) => Array.isArray(tag) && tag[0] === "e");
assert.deepEqual(pointerTags, [["e", "event-id", "wss://relay.example"]]);
const authorTags = event.tags.filter((tag) => Array.isArray(tag) && tag[0] === "p");
assert.deepEqual(authorTags, [["p", "author-pubkey", "wss://relay.example"]]);
});
test(
"buildReactionEvent merges address and event pointers for addressable targets",
() => {
const event = buildReactionEvent({
pubkey: "viewer",
created_at: 1700000001,
pointerValue: "30078:deadbeefcafebabe:clip-1",
pointerTag: ["a", "30078:deadbeefcafebabe:clip-1"],
pointerTags: [
["a", "30078:deadbeefcafebabe:clip-1", "wss://relay.example"],
["e", "event-id"],
["e", "event-id", "wss://event.relay"],
],
targetPointer: {
type: "a",
value: "30078:deadbeefcafebabe:clip-1",
relay: "wss://relay.example",
},
content: "+",
});
const addressTags = event.tags.filter((tag) => Array.isArray(tag) && tag[0] === "a");
assert.deepEqual(addressTags, [[
"a",
"30078:deadbeefcafebabe:clip-1",
"wss://relay.example",
]]);
const eventTags = event.tags.filter((tag) => Array.isArray(tag) && tag[0] === "e");
assert.deepEqual(eventTags, [["e", "event-id", "wss://event.relay"]]);
const authorTags = event.tags.filter((tag) => Array.isArray(tag) && tag[0] === "p");
assert.deepEqual(authorTags, [["p", "deadbeefcafebabe", "wss://relay.example"]]);
}
);