snort/packages/nostr/test/internet-identifier.ts
ennmichael 09950fd547
nip-05
2023-04-04 22:01:26 +02:00

76 lines
2.2 KiB
TypeScript

import assert from "assert"
import { defined } from "../src/common"
import { EventKind } from "../src/event"
import { createSetMetadata } from "../src/event/set-metadata"
import { setup } from "./setup"
describe("internet-identifier", () => {
it("present", (done) => {
setup(done, ({ publisher, publisherSecret, subscriber, done }) => {
subscriber.on("event", async ({ event }) => {
// Assert that the internet identifier can be verified.
assert.strictEqual(event.kind, EventKind.SetMetadata)
if (event.kind === EventKind.SetMetadata) {
const identifier = await event.verifyInternetIdentifier({
https: false,
})
assert.ok(identifier)
const { name, relays } = defined(identifier)
assert.strictEqual(name, "bob")
assert.deepStrictEqual(relays, ["ws://example.com"])
}
done()
})
subscriber.subscribe([])
// After the subscription event sync is done, publish the test event.
subscriber.on("eose", async () => {
publisher.publish({
...(await createSetMetadata(
{
about: "",
name: "",
picture: "",
nip05: "bob@localhost:12647",
},
publisherSecret
)),
})
})
})
})
it("missing", (done) => {
setup(done, ({ publisher, publisherSecret, subscriber, done }) => {
subscriber.on("event", async ({ event }) => {
// Assert that undefined is returned if the internet identifier is missing.
assert.strictEqual(event.kind, EventKind.SetMetadata)
if (event.kind === EventKind.SetMetadata) {
const identifier = await event.verifyInternetIdentifier({
https: false,
})
assert.strictEqual(identifier, undefined)
}
done()
})
subscriber.subscribe([])
// After the subscription event sync is done, publish the test event.
subscriber.on("eose", async () => {
publisher.publish({
...(await createSetMetadata(
{
about: "",
name: "",
picture: "",
},
publisherSecret
)),
})
})
})
})
})