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' \} \}\)/)
})
