76 lines
2.2 KiB
TypeScript
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
|
||
|
)),
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|