Files
simplexmq/xftp-web/test/address.node.test.ts
sh 74a86043cc lib: parse bracketed IPv6 server addresses (#1807)
* Parse bracketed IPv6 server hosts

* lib: parse service-scheme and invitation hosts via TransportHost

* correct encoding

* encoding

---------

Co-authored-by: Paul Bottinelli <paul.bottinelli@trailofbits.com>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
2026-06-21 12:18:34 +01:00

22 lines
870 B
TypeScript

import {expect, test} from 'vitest'
import {formatXFTPServer, parseXFTPServer, serverOrigin} from '../src/protocol/address.js'
const keyHash = 'LcJUMfVhwD8yxjAiSaDzzGF3-kLG4Uh0Fl_ZIjrRwjI='
test('parseXFTPServer supports bracketed IPv6 hosts with ports', () => {
const server = parseXFTPServer(`xftp://${keyHash}@[2001:db8::1]:8443,example.com`)
expect(server.host).toBe('[2001:db8::1]')
expect(server.port).toBe('8443')
expect(serverOrigin(server)).toBe('https://[2001:db8::1]:8443')
expect(formatXFTPServer(server)).toBe(`xftp://${keyHash}@[2001:db8::1]:8443`)
})
test('parseXFTPServer uses the default port for bracketed IPv6 hosts', () => {
const server = parseXFTPServer(`xftp://${keyHash}@[2001:db8::1]`)
expect(server.host).toBe('[2001:db8::1]')
expect(server.port).toBe('443')
expect(serverOrigin(server)).toBe('https://[2001:db8::1]')
})