import * as lbryURI from '../src/lbryURI.js'; import {describe, test} from "@jest/globals"; describe('parseURI tests', () => { test('Correctly parses channel URI', () => { let result = lbryURI.parseURI('lbry://@ChannelName'); expect(result.isChannel).toBeTruthy(); expect(result.path).toStrictEqual("@ChannelName"); expect(result.channelName).toStrictEqual("ChannelName"); expect(result.claimName).toStrictEqual("@ChannelName"); }); test('Correctly parses test case channel/stream lbry URI', () => { let result = lbryURI.parseURI('lbry://@CryptoGnome#1/whale-pool-how-to#e'); expect(result.isChannel).toStrictEqual(false);; expect(result.path).toStrictEqual("@CryptoGnome#1/whale-pool-how-to#e"); expect(result.claimId).toStrictEqual("1"); expect(result.streamClaimId).toStrictEqual("e"); expect(result.streamName).toStrictEqual("whale-pool-how-to"); expect(result.channelName).toStrictEqual("CryptoGnome"); expect(result.contentName).toStrictEqual("whale-pool-how-to"); }); test('Correctly parses lbry URI without protocol', () => { let result = lbryURI.parseURI('@CryptoGnome#1/whale-pool-how-to#e'); expect(result.isChannel).toStrictEqual(false);; expect(result.streamName).toStrictEqual("whale-pool-how-to"); expect(result.channelName).toStrictEqual("CryptoGnome"); }); test('Throws error for http protocol', () => { // TODO - this catches wrong type of error.. let uri = 'http://@CryptoGnome#1/whale-pool-how-to#e'; expect(() => lbryURI.parseURI(uri)).toThrowError(); }); test('Correctly parses search', () => { let result = lbryURI.parseURI('CryptoGn%ome'); expect(result.isChannel).toStrictEqual(false); expect(result.path).toStrictEqual("CryptoGn%ome"); expect(result.contentName).toStrictEqual("CryptoGn%ome"); }); })