import assert from 'node:assert/strict'; import test from 'node:test'; import { canAppendRouteRule, normalizeRouteRules } from '../../src/shared/routingRules.js'; test('local route rules normalize URLs, suffixes and duplicates', () => { assert.deepEqual(normalizeRouteRules([ { type: 'domain', value: 'https://Example.com/news?id=1' }, { type: 'domain_suffix', value: '*.Example.org' }, { type: 'domain_keyword', value: ' CDN ' }, { type: 'domain', value: 'example.com' }, { type: 'domain_suffix', value: '.ru', enabled: false }, ], { strict: true }), [ { type: 'domain', value: 'example.com', enabled: true }, { type: 'domain_suffix', value: 'example.org', enabled: true }, { type: 'domain_keyword', value: 'cdn', enabled: true }, { type: 'domain_suffix', value: 'ru', enabled: false }, ]); assert.equal(canAppendRouteRule([{ value: 'filled' }]), true); assert.equal(canAppendRouteRule([{ value: '' }]), false); }); test('invalid local route rules fail at the strict boundary', () => { assert.throws( () => normalizeRouteRules([{ type: 'domain_regex', value: '.*' }], { strict: true }), /Invalid domain rule type/, ); assert.throws( () => normalizeRouteRules([{ type: 'domain_keyword', value: 'bad/path' }], { strict: true }), /Invalid domain rule value/, ); });