42 lines
1.6 KiB
JavaScript
42 lines
1.6 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert');
|
|
const http = require('node:http');
|
|
const { bareHostname } = require('../src/utils/helpers.js');
|
|
const { checkGiteaConnection } = require('../src/git/apiHandler.js');
|
|
|
|
function listen(host) {
|
|
return new Promise((resolve, reject) => {
|
|
const server = http.createServer((req, res) => {
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.end(JSON.stringify({ version: '1.22.0' }));
|
|
});
|
|
server.once('error', reject);
|
|
server.listen(0, host, () => resolve(server));
|
|
});
|
|
}
|
|
|
|
test('bareHostname entfernt Klammern nur bei IPv6-Literalen', () => {
|
|
assert.strictEqual(bareHostname(new URL('http://[2001:db8::1]:3000').hostname), '2001:db8::1');
|
|
assert.strictEqual(bareHostname('[::1]'), '::1');
|
|
assert.strictEqual(bareHostname('127.0.0.1'), '127.0.0.1');
|
|
assert.strictEqual(bareHostname('git.example.com'), 'git.example.com');
|
|
assert.strictEqual(bareHostname(undefined), '');
|
|
});
|
|
|
|
test('Gitea-Verbindung über IPv4', async () => {
|
|
const server = await listen('127.0.0.1');
|
|
try {
|
|
const r = await checkGiteaConnection({ url: `http://127.0.0.1:${server.address().port}` });
|
|
assert.strictEqual(r.ok, true);
|
|
} finally { server.close(); }
|
|
});
|
|
|
|
test('Gitea-Verbindung über IPv6', async (t) => {
|
|
let server;
|
|
try { server = await listen('::1'); } catch { return t.skip('IPv6-Loopback nicht verfügbar'); }
|
|
try {
|
|
const r = await checkGiteaConnection({ url: `http://[::1]:${server.address().port}` });
|
|
assert.strictEqual(r.ok, true);
|
|
} finally { server.close(); }
|
|
});
|