const test = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');

const { faviconV2Url, faviconFallbackUrl } = require('../src/helpers/utils');

test('faviconV2：应追加 drop_404_icon=true 以避免返回占位图', () => {
  const optionsCom = { data: { root: { icons: { region: 'com' } } } };
  const optionsCn = { data: { root: { icons: { region: 'cn' } } } };

  const url = 'https://example.com';

  const com = faviconV2Url(url, optionsCom);
  const cn = faviconV2Url(url, optionsCn);
  const fallbackCom = faviconFallbackUrl(url, optionsCom);
  const fallbackCn = faviconFallbackUrl(url, optionsCn);

  for (const out of [com, cn, fallbackCom, fallbackCn]) {
    assert.ok(out.includes('drop_404_icon=true'), '生成的 URL 应包含 drop_404_icon=true');
  }
});

test('运行时新增站点：faviconV2 URL 也应包含 drop_404_icon=true', () => {
  const repoRoot = path.resolve(__dirname, '..');
  const runtimePath = path.join(repoRoot, 'src', 'runtime', 'menav', 'addElement.js');
  const content = fs.readFileSync(runtimePath, 'utf8');
  assert.ok(
    content.includes('drop_404_icon=true'),
    'src/runtime/menav/addElement.js 应追加 drop_404_icon=true'
  );
});
