mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-28 16:32:28 +00:00
69 lines
2.1 KiB
JavaScript
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]);
|
|
});
|