Files
menav/test/icons-mode-from-site-yml.node-test.js
2026-01-04 21:07:07 +08:00

49 lines
1.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const test = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const os = require('node:os');
const path = require('node:path');
const { loadConfig } = require('../src/generator.js');
function withTempCwd(callback) {
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'menav-icons-mode-test-'));
const originalCwd = process.cwd();
try {
process.chdir(tmpDir);
callback(tmpDir);
} finally {
process.chdir(originalCwd);
fs.rmSync(tmpDir, { recursive: true, force: true });
}
}
test('site.yml 的 icons.mode 应提升为顶层 icons.modemanual 不应被默认 favicon 覆盖)', () => {
withTempCwd((tmpDir) => {
const defaultConfigDir = path.join(tmpDir, 'config', '_default');
fs.mkdirSync(defaultConfigDir, { recursive: true });
fs.writeFileSync(
path.join(defaultConfigDir, 'site.yml'),
['title: Test', 'icons:', ' mode: manual', ''].join('\n'),
'utf8'
);
const config = loadConfig();
assert.equal(config.icons.mode, 'manual');
});
});
test('未配置 icons.mode 时应回退为默认 favicon', () => {
withTempCwd((tmpDir) => {
const defaultConfigDir = path.join(tmpDir, 'config', '_default');
fs.mkdirSync(defaultConfigDir, { recursive: true });
fs.writeFileSync(path.join(defaultConfigDir, 'site.yml'), 'title: Test\n', 'utf8');
const config = loadConfig();
assert.equal(config.icons.mode, 'favicon');
});
});