Archived
知识库补图标 —— 顺带堵掉「图标名写错静默留白」这个洞
左轨那一格是空的:ZONES 给知识库写的 `library` 在 Ico 字典里根本没有,
而 Ico 查不到名字时返回一个**空 svg** —— 图标掉了不报错、不留痕,
八格有图标一格没有,看上去像布局塌了。是用户指出来才发现的。
三件事:
· 补 library 字形(书脊排在架上,与运营侧知识库的 layers 明显不同形)
· 查无此名时画一枚虚线空框(字体界的「豆腐块」),不画空气 —— 缺图标得看得见
· 导出 hasIco,加一条测试逐格对 ZONES / ZM / TABS 的图标名,
并自证查名管用(不在册的要答不在,否则前三条是空转)
全库 92 个手写图标名扫过一遍,现在零缺
顺手改掉知识库占位卡的语气:原来用 Clear(绿对勾),读着像给「还没建」打了勾;
换成中性 Note + 三行未建清单。
四闸绿(api:check 未动契约)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
* 导航表里的图标名**必须在册** —— 这条实测抓出来的洞(2026-07-29)。
|
||||
*
|
||||
* `Ico` 从前查不到名字就返回一个**空 svg**:左轨那一格什么都不画,
|
||||
* 而周围八格都有图标,看上去像布局塌了。知识库区就这么空着上了一版,
|
||||
* 是用户指出来的(「知识库至少做个图标啊」)。
|
||||
*
|
||||
* 图标名是**手写的字符串**,没有类型能拦住笔误;那就用一条测试逐格对表。
|
||||
*/
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { hasIco } from '@ui';
|
||||
import { TABS, ZM, ZONES } from '../gov-route.ts';
|
||||
|
||||
describe('导航图标名在册', () => {
|
||||
it('左轨每一区的图标都画得出来', () => {
|
||||
const missing = ZONES.filter((z) => !hasIco(z.icon)).map((z) => `${z.label}(${z.icon})`);
|
||||
expect(missing, '左轨缺图标的区').toEqual([]);
|
||||
});
|
||||
|
||||
it('区头每一区的图标都画得出来', () => {
|
||||
const missing = Object.entries(ZM)
|
||||
.filter(([, m]) => !hasIco(m.icon))
|
||||
.map(([k, m]) => `${k}(${m.icon})`);
|
||||
expect(missing, '区头缺图标的区').toEqual([]);
|
||||
});
|
||||
|
||||
it('区内页签的图标都画得出来', () => {
|
||||
const missing = Object.entries(TABS).flatMap(([zone, tabs]) =>
|
||||
tabs.filter((t) => !hasIco(t.ico)).map((t) => `${zone}/${t.key}(${t.ico})`),
|
||||
);
|
||||
expect(missing, '页签缺图标的格').toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('查名本身管用', () => {
|
||||
it('在册的答在、不在册的答不在 —— 否则上面三条测试是空转的', () => {
|
||||
expect(hasIco('library'), '知识库那格的图标').toBe(true);
|
||||
expect(hasIco('这个名字不存在')).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user