var test = require('node:test');
var assert = require('node:assert/strict');
var path = require('node:path');
var fs = require('node:fs');
var vm = require('node:vm');
function load() { return import('file://' + path.join(__dirname, '../lib/public/modules/clay-browser-links.js')); }
test('browser pills accept explicit web destinations and preserve port, query and fragment', async function () {
var links = await load();
assert.equal(links.browserLinkTarget('browser:http://localhost:3000/preview?tab=one#section'), 'http://localhost:3000/preview?tab=one#section');
['https://example.test/', 'browser:javascript:alert(1)', 'browser:file:///tmp/test', 'browser:data:text/html,x', 'browser:https://user:pass@example.test/', 'browser:https://example.test/\n', 'browser://example.test', 'browser:https://'].forEach(function (value) { assert.equal(links.browserLinkTarget(value), null, value); });
});
test('browser pills render compact accessible buttons and escape URL and label attributes', async function () {
var links = await load();
var html = links.renderBrowserLink('browser:https://example.test/?q=%22&x=1', '', 'Preview "page"
');
assert.match(html, /class="clay-browser-link clayos-record-link"/);
assert.match(html, /data-lucide="globe"/);
assert.match(html, /aria-label="Open in Clay Browser:/);
assert.match(html, /Preview "page"/);
assert.match(html, /&x=1/);
assert.equal(html.includes('![]()