feat: 实现右键菜单注册与点击分流逻辑
- 新增 utils/contextMenu.ts 封装菜单配置和解析函数 - 在 background.ts 监听 onInstalled 初始化菜单 - 实现 contextMenus.onClicked 点击事件处理 - 分流逻辑:优先发送到侧边栏,否则打开 options 页面 - 添加 contextMenu 单元测试(15个测试用例) - 更新 vitest.setup.ts 添加 contextMenus mock
This commit is contained in:
@@ -70,6 +70,28 @@ Object.defineProperty(global, 'chrome', {
|
||||
getAll: vi.fn().mockResolvedValue([]),
|
||||
remove: vi.fn().mockResolvedValue(undefined),
|
||||
},
|
||||
contextMenus: {
|
||||
create: vi.fn(),
|
||||
onClicked: {
|
||||
addListener: vi.fn(),
|
||||
removeListener: vi.fn(),
|
||||
},
|
||||
ContextType: {
|
||||
ALL: 'all',
|
||||
PAGE: 'page',
|
||||
FRAME: 'frame',
|
||||
SELECTION: 'selection',
|
||||
LINK: 'link',
|
||||
EDITABLE: 'editable',
|
||||
IMAGE: 'image',
|
||||
VIDEO: 'video',
|
||||
AUDIO: 'audio',
|
||||
LAUNCHER: 'launcher',
|
||||
BROWSER_ACTION: 'browser_action',
|
||||
PAGE_ACTION: 'page_action',
|
||||
ACTION: 'action',
|
||||
},
|
||||
},
|
||||
},
|
||||
writable: true,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user