fix: improve Windows tunnel support
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { describe, expect, it } from 'bun:test';
|
||||
|
||||
import {
|
||||
extractNgrokPublicUrlFromText,
|
||||
summarizeNgrokOutput,
|
||||
} from './ngrok-tunnel.js';
|
||||
|
||||
describe('extractNgrokPublicUrlFromText', () => {
|
||||
it('extracts public URL from ngrok JSON logs', () => {
|
||||
const url = extractNgrokPublicUrlFromText('{"lvl":"info","msg":"started tunnel","url":"https://demo.ngrok-free.app"}\n');
|
||||
|
||||
expect(url).toBe('https://demo.ngrok-free.app');
|
||||
});
|
||||
|
||||
it('extracts public URL from ngrok text output', () => {
|
||||
const url = extractNgrokPublicUrlFromText('Forwarding https://demo.ngrok-free.app -> http://127.0.0.1:3000');
|
||||
|
||||
expect(url).toBe('https://demo.ngrok-free.app');
|
||||
});
|
||||
|
||||
it('ignores non-ngrok URLs', () => {
|
||||
const url = extractNgrokPublicUrlFromText('{"url":"https://example.com"}\n');
|
||||
|
||||
expect(url).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('summarizeNgrokOutput', () => {
|
||||
it('prefers actionable JSON error details over trailing help text', () => {
|
||||
const summary = summarizeNgrokOutput([
|
||||
'{"err":"authentication failed: Your ngrok-agent version \\"3.3.1\\" is too old. The minimum supported agent version for your account is \\"3.20.0\\".\\r\\n\\r\\nERR_NGROK_121\\r\\n","lvl":"crit","msg":"command failed"}',
|
||||
'NAME:',
|
||||
' http - start an HTTP tunnel',
|
||||
]);
|
||||
|
||||
expect(summary).toContain('Your ngrok-agent version "3.3.1" is too old');
|
||||
expect(summary).toContain('ERR_NGROK_121');
|
||||
});
|
||||
|
||||
it('skips bare ERROR lines and keeps the useful error text', () => {
|
||||
const summary = summarizeNgrokOutput([
|
||||
'ERROR:',
|
||||
'ERROR: authentication failed',
|
||||
'ERROR:',
|
||||
'ERROR: ERR_NGROK_121',
|
||||
]);
|
||||
|
||||
expect(summary).toBe('authentication failed ERR_NGROK_121');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user