mtcute/packages/core/tests/links/proxy-links.spec.ts

89 lines
2.8 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-unsafe-call */
import { expect } from 'chai'
import { describe, it } from 'mocha'
import { links } from '../../src/utils/links/index.js'
describe('Deep links', function () {
describe('MTProxy links', () => {
it('should generate t.me/proxy links', () => {
expect(
links.mtproxy({
server: 'server',
port: 123,
secret: 'secret',
}),
).eq('https://t.me/proxy?server=server&port=123&secret=secret')
})
it('should generate tg://proxy links', () => {
expect(
links.mtproxy({
server: 'server',
port: 123,
secret: 'secret',
protocol: 'tg',
}),
).eq('tg://proxy?server=server&port=123&secret=secret')
})
it('should parse t.me/proxy links', () => {
expect(links.mtproxy.parse('https://t.me/proxy?server=server&port=123&secret=secret')).eql({
server: 'server',
port: 123,
secret: 'secret',
})
})
it('should parse tg://proxy links', () => {
expect(links.mtproxy.parse('tg://proxy?server=server&port=123&secret=secret')).eql({
server: 'server',
port: 123,
secret: 'secret',
})
})
})
describe('Socks5 links', () => {
it('should generate t.me/socks links', () => {
expect(
links.socks5({
server: 'server',
port: 123,
user: 'user',
pass: 'pass',
}),
).eq('https://t.me/socks?server=server&port=123&user=user&pass=pass')
})
it('should generate tg://socks links', () => {
expect(
links.socks5({
server: 'server',
port: 123,
user: 'user',
pass: 'pass',
protocol: 'tg',
}),
).eq('tg://socks?server=server&port=123&user=user&pass=pass')
})
it('should parse t.me/socks links', () => {
expect(links.socks5.parse('https://t.me/socks?server=server&port=123&user=user&pass=pass')).eql({
server: 'server',
port: 123,
user: 'user',
pass: 'pass',
})
})
it('should parse tg://socks links', () => {
expect(links.socks5.parse('tg://socks?server=server&port=123&user=user&pass=pass')).eql({
server: 'server',
port: 123,
user: 'user',
pass: 'pass',
})
})
})
})