Files
snort/packages/app/src/SnortUtils/Utils.test.ts
2023-08-28 17:38:09 +01:00

40 lines
1.8 KiB
TypeScript

import { magnetURIDecode, getRelayName } from ".";
import { describe, expect } from "@jest/globals";
describe("magnet", () => {
it("should parse magnet link", () => {
const book =
"magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36&xt=urn:btmh:1220d2474e86c95b19b8bcfdb92bc12c9d44667cfa36d2474e86c95b19b8bcfdb92b&dn=Leaves+of+Grass+by+Walt+Whitman.epub&tr=udp%3A%2F%2Ftracker.example4.com%3A80&tr=udp%3A%2F%2Ftracker.example5.com%3A80&tr=udp%3A%2F%2Ftracker.example3.com%3A6969&tr=udp%3A%2F%2Ftracker.example2.com%3A80&tr=udp%3A%2F%2Ftracker.example1.com%3A1337";
const output = magnetURIDecode(book);
expect(output).not.toBeUndefined();
expect(output!.dn).toEqual("Leaves of Grass by Walt Whitman.epub");
expect(output!.infoHash).toEqual("d2474e86c95b19b8bcfdb92bc12c9d44667cfa36");
expect(output!.tr).toEqual([
"udp://tracker.example4.com:80",
"udp://tracker.example5.com:80",
"udp://tracker.example3.com:6969",
"udp://tracker.example2.com:80",
"udp://tracker.example1.com:1337",
]);
});
});
describe("getRelayName", () => {
it("should return relay name", () => {
const url = "wss://relay.snort.social/";
const output = getRelayName(url);
expect(output).toEqual("relay.snort.social");
});
it("should return relay name with search property", () => {
const url = "wss://relay.example1.com/?lang=en";
const output = getRelayName(url);
expect(output).toEqual("relay.example1.com?lang=en");
});
it("should return relay name without pathname", () => {
const url =
"wss://relay.example2.com/npub1sn0rtcjcf543gj4wsg7fa59s700d5ztys5ctj0g69g2x6802npjqhjjtws?broadcast=true";
const output = getRelayName(url);
expect(output).toEqual("relay.example2.com?broadcast=true");
});
});