UNPKG

@nostr-dev-kit/ndk

Version:

NDK - Nostr Development Kit

122 lines (116 loc) 5.43 kB
import { beforeEach, describe, expect, it, vi } from "vitest"; import { NDK } from "../../../ndk/index.js"; import { NDKEvent } from "../../index.js"; import { NDKAppHandlerEvent } from "./app-handler"; const validEvent = { kind: 31990, id: "1dd29c0628790e20d7e5ce218bdb4e1db45fecf844b0afa9f2cefdb30b426a96", pubkey: "73c6bb92440a9344279f7a36aa3de1710c9198b1e9e8a394cd13e0dd5c994c63", created_at: 1704502265, tags: [ ["d", "1704502265408"], ["published_at", "1704502265"], ["r", "https://highlighter.com"], ["alt", "Nostr App: Highlighter"], [ "zap", "fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52", "wss://relay.nostr.band", "9", ], [ "zap", "73c6bb92440a9344279f7a36aa3de1710c9198b1e9e8a394cd13e0dd5c994c63", "wss://relay.nostr.band", "1", ], [ "p", "fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52", "wss://relay.nostr.band", "author", ], ["k", "9802"], ["k", "39802"], ["k", "30023"], ["k", "30001"], ["web", "https://highlighter.com/a/<bech32>", "naddr"], ["web", "https://highlighter.com/a/<bech32>", "nevent"], ["web", "https://highlighter.com/u/<bech32>", "npub"], ["web", "https://highlighter.com/u/<bech32>", "nprofile"], ["t", "productivity"], ["t", "news"], ["t", "reading"], ], content: '{"name":"Highlighter","display_name":"Highlighter","nip05":"","picture":"https://highlighter.com/favicon.svg","banner":"https://image.nostr.build/fdaae24f5124ca3549a790f6cd3f939aeaa853dd2dc059e8a9989802988b32c3.png","about":"Capture every passage","lud16":"pf7z@getalby.com","website":"https://highlighter.com"}', sig: "e79cdb9641f8cac1dd109965705654d7342f0870c469bf413c1b498377c298686ab03b3d9fbf7f1269903d27eec5851b8c20ad25809a73313d45561d74e5a13e", }; const invalidEvent = { created_at: 1722398354, content: '{"name":"YakiHonne","display_name":"YakiHonne","nip05":"_@yakihonne.com","picture":"https://yakihonne.s3.ap-east-1.amazonaws.com/20986fb83e775d96d188ca5c9df10ce6d613e0eb7e5768a0f0b12b37cdac21b3/files/1691722198488-YAKIHONNES3.png","banner":"https://yakihonne.s3.ap-east-1.amazonaws.com/20986fb83e775d96d188ca5c9df10ce6d613e0eb7e5768a0f0b12b37cdac21b3/files/1700727820143-YAKIHONNES3.png","about":"YakiHonne is a Nostr-based decentralized content media protocol that supports blogs, flash news, curation, videos, uncensored notes, zaps, and other content types. Join us now and experience the joy of decentralized publishing, review and settlement media networks.","lud16":"yakihonne@getalby.com","website":"https://yakihonne.com/"}', tags: [ ["d", "1700732875747"], ["published_at", "1700732875"], ["t", "social"], ["t", "news"], ["t", "messaging"], ["t", "video"], ["r", "https://yakihonne.com/"], ["alt", "Nostr App: YakiHonne"], ["r", "https://github.com/YakiHonne", "source"], ["k", "0"], ["k", "1"], ["k", "3"], ["k", "4"], ["k", "6"], ["k", "7"], ["k", "1984"], ["k", "9735"], ["k", "13194"], ["k", "30001"], ["k", "30003"], ["k", "30004"], ["k", "30023"], ["k", "31990"], ["web", "https://yakihonne.com/users/<bech32>", "nprofile"], ["web", "https://yakihonne.com/article/<bech32>", "naddr"], ["web", "https://yakihonne.com/curations/<bech32>", "naddr"], ["web", "https://yakihonne.com/notes/<bech32>", "nevent"], ["web", "https://yakihonne.com/videos/<bech32>", "naddr"], ["web", "https://yakihonne.com/flash-news/<bech32>", "nevent"], ["web", "https://yakihonne.com/uncensored-notes/<bech32>", "nevent"], ["android", "nostr:<bech32>", "nprofile"], ["android", "nostr:<bech32>", "naddr"], ["android", "nostr:<bech32>", "nevent"], ["ios", "nostr:<bech32>", "nprofile"], ["ios", "nostr:<bech32>", "naddr"], ["ios", "nostr:<bech32>", "nevent"], ], kind: 31990, pubkey: "20986fb83e775d96d188ca5c9df10ce6d613e0eb7e5768a0f0b12b37cdac21b3", id: "cbd471c34e2f3779007008a5333999000a35ae9e95710356bd3a8e8dd971bece", sig: "e7ffcccc3880a89127249733f82898a8e961fd0c6e1428f98b0f6b1aaa41ef673899a2503f8783c40ee6acc35303ffdd245e55660ef960066dd07ef8a94b0c2a", }; describe("NDKAppHandlerEvent", () => { let ndk: NDK; let _appHandlerEvent: NDKAppHandlerEvent; beforeEach(() => { ndk = new NDK(); _appHandlerEvent = new NDKAppHandlerEvent(ndk); }); // Test cases will be added here it("returns null if the event is invalid", async () => { // Create an NDKEvent from the invalid event data const ndkEvent = new NDKEvent(ndk, invalidEvent); const invalidAppHandler = NDKAppHandlerEvent.from(ndkEvent); expect(invalidAppHandler).toBeNull(); }); it("returns the event if it is valid", async () => { // Create an NDKEvent from the valid event data const ndkEvent = new NDKEvent(ndk, validEvent); const validAppHandler = NDKAppHandlerEvent.from(ndkEvent); expect(validAppHandler).not.toBeNull(); }); });