Files
bitvid/tests/moderation/trust-seeds.test.mjs
T

69 lines
2.1 KiB
JavaScript

import test from "node:test";
import assert from "node:assert/strict";
import { DEFAULT_TRUST_SEED_NPUBS } from "../../js/constants.js";
import {
withMockedNostrTools,
createModerationServiceHarness,
createReportEvent,
} from "../helpers/moderation-test-helpers.mjs";
const [PRIMARY_SEED_NPUB] = DEFAULT_TRUST_SEED_NPUBS;
function createTrustedMuteEvent({ owner, muted, id = "m".repeat(64), createdAt = 1_700_000_000 } = {}) {
return {
kind: 10000,
id,
pubkey: owner,
created_at: createdAt,
tags: [["p", muted]],
content: "",
};
}
test("trusted seeds contribute to trusted mute counts", (t) => {
withMockedNostrTools(t);
const mutedAuthor = "c".repeat(64);
const { service } = createModerationServiceHarness(t);
service.setTrustedSeeds([PRIMARY_SEED_NPUB]);
const [seedHex] = Array.from(service.trustedContacts);
assert.ok(seedHex, "trusted seeds should populate trustedContacts");
const muteEvent = createTrustedMuteEvent({ owner: seedHex, muted: mutedAuthor });
service.applyTrustedMuteEvent(seedHex, muteEvent);
assert.equal(service.isTrustedMuteOwner(seedHex), true);
assert.equal(service.isAuthorMutedByTrusted(mutedAuthor), true);
assert.deepEqual(service.getTrustedMutersForAuthor(mutedAuthor), [seedHex]);
});
test("trusted seeds contribute to trusted report counts", (t) => {
withMockedNostrTools(t);
const eventId = "f".repeat(64);
const { service } = createModerationServiceHarness(t);
service.setTrustedSeeds([PRIMARY_SEED_NPUB]);
const [seedHex] = Array.from(service.trustedContacts);
assert.ok(seedHex, "trusted seeds should populate trustedContacts");
const report = createReportEvent({
id: "r".repeat(64),
reporter: seedHex,
eventId,
createdAt: 1_700_000_111,
type: "nudity",
});
service.ingestReportEvent(report);
assert.equal(service.trustedReportCount(eventId, "nudity"), 1);
const summary = service.getTrustedReportSummary(eventId);
assert.equal(summary?.totalTrusted ?? 0, 1);
const reporters = service.getTrustedReporters(eventId, "nudity");
assert.deepEqual(reporters.map((entry) => entry.pubkey), [seedHex]);
});