23 lines
1.4 KiB
JavaScript
23 lines
1.4 KiB
JavaScript
|
|
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, /<LogsView v-else class="settings-logs-view" \/>/)
|
||
|
|
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' \} \}\)/)
|
||
|
|
})
|