mirror of
https://codeberg.org/yeentown/barkey.git
synced 2025-07-07 20:44:34 +00:00
make toPuny
work better in testing
This commit is contained in:
parent
58c0ac6c89
commit
fda71c4147
2 changed files with 32 additions and 2 deletions
|
@ -106,13 +106,22 @@ export class UtilityService {
|
|||
|
||||
@bindThis
|
||||
public toPuny(host: string): string {
|
||||
return domainToASCII(host.toLowerCase());
|
||||
// domainToASCII will return an empty string if we give it a
|
||||
// string like `name:123`, but `host` may well be in that form
|
||||
// (e.g. when testing locally, you'll get `localhost:3000`); split
|
||||
// the port off, and add it back later
|
||||
const hostParts = host.toLowerCase().match(/^(.+?)(:.+)?$/);
|
||||
if (!hostParts) return '';
|
||||
const hostname = hostParts[1];
|
||||
const port = hostParts[2] ?? '';
|
||||
|
||||
return domainToASCII(hostname) + port;
|
||||
}
|
||||
|
||||
@bindThis
|
||||
public toPunyNullable(host: string | null | undefined): string | null {
|
||||
if (host == null) return null;
|
||||
return domainToASCII(host.toLowerCase());
|
||||
return this.toPuny(host);
|
||||
}
|
||||
|
||||
@bindThis
|
||||
|
|
|
@ -22,6 +22,12 @@ describe('UtilityService', () => {
|
|||
test('japanese', () => {
|
||||
assert.equal(utilityService.punyHost('http://www.新聞.com'), 'www.xn--efvv70d.com');
|
||||
});
|
||||
test('simple, with port', () => {
|
||||
assert.equal(utilityService.punyHost('http://www.foo.com:3000'), 'www.foo.com:3000');
|
||||
});
|
||||
test('japanese, with port', () => {
|
||||
assert.equal(utilityService.punyHost('http://www.新聞.com:3000'), 'www.xn--efvv70d.com:3000');
|
||||
});
|
||||
});
|
||||
|
||||
describe('punyHostPSLDomain', () => {
|
||||
|
@ -31,6 +37,12 @@ describe('UtilityService', () => {
|
|||
test('japanese', () => {
|
||||
assert.equal(utilityService.punyHostPSLDomain('http://www.新聞.com'), 'xn--efvv70d.com');
|
||||
});
|
||||
test('simple, with port', () => {
|
||||
assert.equal(utilityService.punyHostPSLDomain('http://www.foo.com:3000'), 'foo.com:3000');
|
||||
});
|
||||
test('japanese, with port', () => {
|
||||
assert.equal(utilityService.punyHostPSLDomain('http://www.新聞.com:3000'), 'xn--efvv70d.com:3000');
|
||||
});
|
||||
test('lower', () => {
|
||||
assert.equal(utilityService.punyHostPSLDomain('http://foo.github.io'), 'foo.github.io');
|
||||
assert.equal(utilityService.punyHostPSLDomain('http://foo.bar.github.io'), 'bar.github.io');
|
||||
|
@ -40,4 +52,13 @@ describe('UtilityService', () => {
|
|||
assert.equal(utilityService.punyHostPSLDomain('http://foo.bar.masto.host'), 'bar.masto.host');
|
||||
});
|
||||
});
|
||||
|
||||
describe('toPuny', () => {
|
||||
test('without port ', () => {
|
||||
assert.equal(utilityService.toPuny('www.foo.com'), 'www.foo.com');
|
||||
});
|
||||
test('with port ', () => {
|
||||
assert.equal(utilityService.toPuny('www.foo.com:3000'), 'www.foo.com:3000');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue