mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
Merge pull request #2204 from PR0M3TH3AN/test/video-pointer-tests-15855649223064850700
Add unit tests for videoPointer.js
This commit is contained in:
1 file changed
+152
@@ -0,0 +1,152 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { resolveVideoPointer, DEFAULT_VIDEO_KIND } from "../../js/utils/videoPointer.js";
|
||||
|
||||
test("resolveVideoPointer returns address pointer with dTag", () => {
|
||||
const result = resolveVideoPointer({
|
||||
kind: 30000,
|
||||
pubkey: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||
dTag: "test-video",
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
assert.equal(result.key, "a:30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:test-video");
|
||||
assert.deepEqual(result.pointer, [
|
||||
"a",
|
||||
"30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:test-video",
|
||||
]);
|
||||
assert.equal(result.eventId, "");
|
||||
});
|
||||
|
||||
test("resolveVideoPointer returns address pointer with videoRootId", () => {
|
||||
const result = resolveVideoPointer({
|
||||
kind: 30000,
|
||||
pubkey: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||
videoRootId: "root-id",
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
assert.equal(result.key, "a:30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:root-id");
|
||||
assert.deepEqual(result.pointer, [
|
||||
"a",
|
||||
"30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:root-id",
|
||||
]);
|
||||
assert.equal(result.eventId, "");
|
||||
});
|
||||
|
||||
test("resolveVideoPointer returns event pointer with fallbackEventId", () => {
|
||||
const eventId = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
|
||||
const result = resolveVideoPointer({
|
||||
fallbackEventId: eventId,
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
assert.equal(result.key, `e:${eventId}`);
|
||||
assert.deepEqual(result.pointer, ["e", eventId]);
|
||||
assert.equal(result.eventId, eventId);
|
||||
});
|
||||
|
||||
test("resolveVideoPointer prioritizes dTag over videoRootId", () => {
|
||||
const result = resolveVideoPointer({
|
||||
kind: 30000,
|
||||
pubkey: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||
dTag: "priority-dtag",
|
||||
videoRootId: "ignored-root",
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
assert.equal(result.key, "a:30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:priority-dtag");
|
||||
});
|
||||
|
||||
test("resolveVideoPointer prioritizes videoRootId over fallbackEventId", () => {
|
||||
const result = resolveVideoPointer({
|
||||
kind: 30000,
|
||||
pubkey: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||
videoRootId: "priority-root",
|
||||
fallbackEventId: "ignored-fallback",
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
assert.equal(result.key, "a:30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:priority-root");
|
||||
});
|
||||
|
||||
test("resolveVideoPointer prioritizes dTag over fallbackEventId", () => {
|
||||
const result = resolveVideoPointer({
|
||||
kind: 30000,
|
||||
pubkey: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||
dTag: "priority-dtag",
|
||||
fallbackEventId: "ignored-fallback",
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
assert.equal(result.key, "a:30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:priority-dtag");
|
||||
});
|
||||
|
||||
test("resolveVideoPointer includes relay in pointer", () => {
|
||||
const result = resolveVideoPointer({
|
||||
kind: 30000,
|
||||
pubkey: "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234",
|
||||
dTag: "test-video",
|
||||
relay: "wss://relay.example.com",
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
// Note: pointerArrayToKey includes relay if present
|
||||
assert.equal(result.key, "a:30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:test-video:wss://relay.example.com");
|
||||
assert.deepEqual(result.pointer, [
|
||||
"a",
|
||||
"30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:test-video",
|
||||
"wss://relay.example.com",
|
||||
]);
|
||||
});
|
||||
|
||||
test("resolveVideoPointer normalizes inputs", () => {
|
||||
const result = resolveVideoPointer({
|
||||
kind: 30000,
|
||||
pubkey: " ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234 ",
|
||||
dTag: " test-video ",
|
||||
relay: " wss://relay.example.com ",
|
||||
});
|
||||
|
||||
assert.ok(result);
|
||||
assert.equal(result.key, "a:30000:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234:test-video:wss://relay.example.com");
|
||||
});
|
||||
|
||||
test("resolveVideoPointer uses default kind when kind is missing or invalid", () => {
|
||||
const pubkey = "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234";
|
||||
|
||||
// Missing kind
|
||||
let result = resolveVideoPointer({
|
||||
pubkey,
|
||||
dTag: "test",
|
||||
});
|
||||
assert.equal(result.key, `a:${DEFAULT_VIDEO_KIND}:${pubkey}:test`);
|
||||
|
||||
// Invalid kind (string)
|
||||
result = resolveVideoPointer({
|
||||
kind: "30000",
|
||||
pubkey,
|
||||
dTag: "test",
|
||||
});
|
||||
assert.equal(result.key, `a:${DEFAULT_VIDEO_KIND}:${pubkey}:test`);
|
||||
|
||||
// Invalid kind (NaN)
|
||||
result = resolveVideoPointer({
|
||||
kind: NaN,
|
||||
pubkey,
|
||||
dTag: "test",
|
||||
});
|
||||
assert.equal(result.key, `a:${DEFAULT_VIDEO_KIND}:${pubkey}:test`);
|
||||
});
|
||||
|
||||
test("resolveVideoPointer returns null for invalid inputs", () => {
|
||||
assert.equal(resolveVideoPointer(), null);
|
||||
assert.equal(resolveVideoPointer({}), null);
|
||||
|
||||
// Missing pubkey for address pointer
|
||||
assert.equal(resolveVideoPointer({ dTag: "test" }), null);
|
||||
assert.equal(resolveVideoPointer({ videoRootId: "test" }), null);
|
||||
|
||||
// Missing identifier for address pointer
|
||||
assert.equal(resolveVideoPointer({ pubkey: "abcd" }), null);
|
||||
});
|
||||
Reference in new issue
Block a user