import assert from 'node:assert/strict' import test from 'node:test' import { readFileSync } from 'node:fs' const settingsModel = readFileSync(new URL('../src/utils/settingsModelHelper.js', import.meta.url), 'utf8') const settingsView = readFileSync(new URL('../src/views/SettingsView.vue', import.meta.url), 'utf8') const settingsScript = readFileSync(new URL('../src/views/scripts/SettingsView.js', import.meta.url), 'utf8') const router = readFileSync(new URL('../src/router/index.js', import.meta.url), 'utf8') const logDetailView = readFileSync(new URL('../src/views/LogDetailView.vue', import.meta.url), 'utf8') test('system logs are nested under system settings instead of sidebar navigation', () => { assert.match(settingsModel, /id:\s*'systemLogs'[\s\S]*label:\s*'系统日志'/) assert.match(settingsView, /activeSection === 'systemLogs'/) assert.match(settingsView, //) assert.match(settingsScript, /import LogsView from '\.\.\/LogsView\.vue'/) }) test('log detail keeps the settings context and legacy logs URLs redirect', () => { assert.match(router, /path:\s*'\/app\/settings\/logs\/:logKind\/:logId'[\s\S]*appView:\s*'settings'/) assert.match(router, /path:\s*'\/app\/logs'[\s\S]*section:\s*'systemLogs'/) assert.match(logDetailView, /router\.push\(\{ name:\s*'app-settings', query:\s*\{ section:\s*'systemLogs' \} \}\)/) })