顺序是刻意的。前端一行测试都没有,直接挪代码挪坏了 bun test 不会红,所以先把纯逻辑 抽到能被测试的位置并补上用例,最后才动组件。测试从 37 条增加到 77 条。 抽出来的四块: - shared/outbound-chain.ts 「这个端口现在走哪条线」的链路解析,带防环,9 条测试 - web/delay-test.ts 延迟测试失败时说什么,6 个分支原本一条测试都没有 - web/runtime.ts 运行时状态的模块级单例,照 prefs.ts 已有的模式 - web/components/InboundList.vue 入站列表 出站的文本原本散成四份(读一份、显示一份、写回一份、表单又抄一份),加一种出站模式 要同时改四处,漏一个就是显示与写回不一致。合并成 OUTBOUND_PRESETS 一张表。 给认证和透传白名单补了 20 条测试。两者都是安全边界、都是纯函数、都不需要内核在线, 之前却只靠需要活内核的冒烟脚本间接覆盖。其中「形似但不是健康检查的路径」几条确认了 正则没写松。 另外:配置快照不再把整份文件原文下发(前端从不读,白白让响应体积翻倍); yaml-cosmetics 的测试改走生产路径,之前它自己拼了一遍三步流程,落盘链路漏掉其中一步 测试照样会绿。
28 lines
965 B
TypeScript
28 lines
965 B
TypeScript
/**
|
|
* 左侧导航。
|
|
*
|
|
* 仪表盘打头(打开先看一眼状态),路由紧随其后(这个工具存在的理由),设置垫底。
|
|
*/
|
|
import IconRoute from '~icons/ri/route-line'
|
|
import IconDashboard from '~icons/ri/dashboard-line'
|
|
import IconConfig from '~icons/ri/file-list-3-line'
|
|
import IconRequests from '~icons/ri/pulse-line'
|
|
import IconConnections from '~icons/ri/links-line'
|
|
import IconSettings from '~icons/ri/settings-3-line'
|
|
import type { Component } from 'vue'
|
|
|
|
export interface NavItem {
|
|
key: string
|
|
label: string
|
|
icon: Component
|
|
}
|
|
|
|
export const NAV: NavItem[] = [
|
|
{ key: 'dashboard', label: '仪表盘', icon: IconDashboard },
|
|
{ key: 'router', label: '路由', icon: IconRoute },
|
|
{ key: 'config', label: '配置', icon: IconConfig },
|
|
{ key: 'requests', label: '请求', icon: IconRequests },
|
|
{ key: 'connections', label: '连接', icon: IconConnections },
|
|
{ key: 'settings', label: '设置', icon: IconSettings },
|
|
]
|